Забезпечення безпеки PHP на Apache



Запустіть протокол «phpinfo ()» і перевірте лінію командою «open_basedir». За допомогою цієї команди ви можете визначити базовий каталог для всіх користувачів. Після установки цього значення, вони більше не будуть мати можливість відкривати файли поза цією кореневої папки або її підкаталогів як, наприклад, «C: Windows».

Якщо у вас є інші структурні каталоги, визначте їх в якості базового каталогу командою «www_root». Однак один користувач також зможе читати і змінювати файли іншого користувача. Це необхідно запобігти.

На жаль, не існує опцій у файлі «php.ini» для того, щоб заборонити одному користувачеві отримувати доступ до даних іншого.

Але є один цікавий спосіб, якщо PHP працює на Apache. У «phpinfo ()» ви знайдете дві колонки: «Основне Значення» і «Локальне значення». Перше є значенням в «php.ini». Друге - це значення, яке визначається в процесі роботи сервера.

Якщо основне значення невелике в цифровому еквіваленті, то воно може бути змінено в сценарії за допомогою команди «ini_set ()». Це не відноситься до «open_basedir», тому що це значення є критичним для безпеки, і може бути змінено тільки адміністратором.

В Apache конфігураційний файл «httpd.conf» можна вказати в довіднику під локальним значенням «open_basedir».


Інші налаштування PHP



За допомогою установки «disable_functions» в файлі «php.ini», необхідно відключити функції, які потенційно небезпечні.
Ретельно обмірковуйте кожну свою дію. Відключення функції означає, що деякі скрипти перестануть працювати.

Деякі функції дійсно небезпечні і зазвичай не потрібні для сценаріїв. Інші - можуть бути необхідні для певних цілей. Тому непросто відключайте всі функції, які можуть бути небезпечними, але і ретельно зважуйте свої рішення.

Не вірте в те, що однією функції «safe_mode = On» буде досить. Вона може відключити деякі корисні функції і не вирішити проблему безпеки, описану вище. Безпечний режим не рекомендується в PHP 5.3.0 і віддаляється в PHP 6.0.0.

проблеми захисту



Є кілька помилок, які веб-розробник може допустити і зробити сайт небезпечним.

Наприклад, якщо ви створюєте свій блог і дозволяєте користувачам завантажувати зображення, це може бути серйозною небезпекою, коли код написаний новачком. Є кілька помилок, які програміст може зробити на сторінці входу і т. Д. Одна з найпоширеніших - відсутність заборони на завантаження шкідливих алгоритмів.

Важливим моментом є те, що один небезпечний сайт на громадському хостингу є загрозою для всього сервера. Також установка Open Source проектів, як, наприклад, PHP-Nuke може бути ризикованою. Кілька вразливих місць в подібних проектах вже було виявлено.