Page 191 - 4636
P. 191
для видалення з рядка html- і php-дескрипторів можна скористатися функцією strip_tags().
це не дозволить користувачам створювати сценарії усередині даних, які сервер передає браузеру;
функція htmlspecialchars() призначена для перетворення символів у символьні
підстановки HTML. Наприклад, символ < перетвориться в Sit;. У результаті будь-які дескриптори
будуть перетворені у безпечні символи
11.4 Забезпечення безпечного зберігання даних
Це ж стосується й каталогів усередині веб-ієрархії. Тільки їхні власники повинні мати права
запису в них. Інші користувачі, включаючи й того, під чиїм обліковим записом запускається веб-
сервер, не повинні мати прав доступу для запису або створення нових файлів у каталогах, які можуть
бути завантажені з веб-сервера.
Якщо сценаріям потрібен запис у файли, то з цією метою необхідно створити каталог за межами
веб-дерева. Особливо це стосується сценаріїв вивантаження файлів на сайт. Сценарії й записувані
ними дані не повинні перебувати разом.
При записі важливих даних спочатку можна спробувати їх зашифрувати. Однак подібний підхід
рідко виявляється ефективним. Якщо зломщик може прочитати дані, швидше за все, ніщо не
перешкодить йому прочитати файли ключів, так само як і інші файли.
Шифрування даних на веб-сервері має сенс тільки в тому випадку, якщо програмне забезпечення
й ключі для дешифрації зберігаються на іншому комп'ютері. Один зі способів обробки важливих даних
полягає у їхньому шифруванні на сервері з наступним пересиланням на інший комп'ютер, можливо, по
електронною поштою.
При правильному налаштуванні Mysql тільки СУБД може записувати інформацію у свої файли.
Як наслідок, турбуватися треба тільки про доступ користувачів у рамках середовища Mysql.
В PHP-Сценаріях необхідно вказати пароль для доступу до Mysql. PHP-Сценарії найчастіше є
загальнодоступними для завантаження. Однак якщо конфігурацію веб-сервера не порушено, вихідний
код РНР ніколи не буде видно ззовні.
Якщо веб-сервер настроєний на обробку файлів з розширенням .php за допомогою
інтерпретатора РНР, зовнішні користувачі не зможуть побачити вихідний код. Проте, потрібно
дотримуватися обережності при використанні інших розширень. Якщо файли з расширением. inc
розмістити у веб-каталогах, за зовнішнім запитом можна буде одержати вихідний код. У цьому
випадку необхідно або розмістити, файли, що підключаються за межами веб-дерева й сконфігурувати
сервер так, щоб він не пересилав файли з таким розширенням, або використовувати для них тільки
розширення .php.
Якщо веб-сервером користуються й інші, то паролі Mysql можуть бачити іншим користувачі, які
працюють на цьому ж комп'ютері й можуть запускати сценарії через той самий веб-сервер.
Виходом може бути або настроювання веб-сервера таким чином, щоб сценарії виконувалися від
імені окремих користувачів, або запуск окремого екземпляра веб-сервера для кожного користувача.
11.5 Використання шифрування в РНР
Стандартом шифрування багато років був PGP — Pretty Good Privacy (цілком гарна таємність). П.
Циммерман (Philip R. Zimmermann) створив стандарт PGP спеціально для того, щоб додати
повідомленням електронної пошти певний рівень конфіденційності.
Існують безкоштовні версії PGP, однак це програмне забезпечення не є вільно
розповсюджуваним. Безкоштовну версію можна застосовувати тільки з некомерційною метою.
Завантажити безкоштовну версію або купити комерційну ліцензію PGP можна на сайті
корпорації PGP за адресою http: //www.pgp.org.
Альтернатива PGP з відкритим вихідним кодом - GPG — Gnu Privacy Guard - це вільно
розповсюджувана заміна PGP. Він не містить запатентованих алгоритмів і тому може
використовуватися з комерційних цілях без будь-яких обмежень.
188