2 коментариев
Поделиться статьей:

Как обезопасить PHP на сервере?

Alla Rud 28.12.2016 2 4264 на прочтение 4 минут

PHP - наиболее популярный серверный язык программирования, который имеет открытый исходный код. На PHP пишут не только сайты, но и серверную часть разных веб-приложений.

Скрипты на PHP могут выполнять веб-серверы Apache, Nginx и Lighttpd. Язык устанавливается непосредственно на сервер, поэтому может вызвать цепочку проблем связанных с безопасностью. В данной статье рассмотрим основные правила безопасности для Вашего сервера.

security_php

Что может навредить безопасности?

Веб-приложение, написанные на PHP, могут подвергаться разным атакам, основные из них:

  • XSS уязвимость, с помощью которой мошенники могут задействовать произвольный JavaScript код в браузере пользователей, тем самым украсть данные пользователя. Часто такая проблема возникает из-за того, что отсутствует проверка данных в скриптах на правильность.
  • SQL инъекция - проблема в коде работы с БД. Для того, чтобы такой проблемы не возникало, следует фильтровать данные функцией mysql_real_escape_string() перед отправкой запроса.
  • загрузка файлов - дает возможность посетителю загружать файлы на Ваш сервер. Есть определенные файлы при загрузке которых посетители могут украсть данные с Вашего сайта, поэтому обязательно стоит следить, чтобы загружать можно было только картинки.
  • удаленное выполнение - мошенник может удаленно выполнять php файлы, которые есть на сервере, поэтому вместе с возможностью загрузки PHP файлов это представляет серьезную опасность для Ваших приложений.
  • Eval() - дает возможность выполнить код PHP, переданный в строке; также часто используется злоумышленниками, чтобы спрятать свой код на вашем сервере;
  • CSRF атака имеет возможность заставить пользователя выполнить нежелательные действия в приложениях. В случае, если этот пользователь администратор сайта, то это ставит под угрозу безопасность всего ресурса.

Необходимо использовать только нужные модули и избегать утечек информации. Использование исключительно самых нужных модулей обезопасит работу Вашей системы. Также настоятельно рекомендуется скрывать версию Apache и другую подобную информацию. Если хотите защитить php от взлома, Вам необходимо не только тщательное написание кода, но нужно скрыть систему от посторонних глаз.

Необходимо сделать отключение динамических расширений. Так как по умолчанию загружаются все расширения, в конфигурации которых есть в /etc/php/conf.d/. Также загружаются модули, которые указаны директивой extension в основном конфиге php.ini. Можно в таком случае удалить ненужное.

Пользователи могут смотреть сообщения об ошибках, которые содержат много информации. Поэтому стоит закрыть возможность такого просмотра.

В случае, если функция загрузки файлов пользователями вовсе не нужна, ее можно отключить или поставить ограничение на файлы не более 1Мб. Так Вы более обезопасите систему PHP.

Включенный безопасный режим SQL позволяет интерпретатору игнорировать все аргументы в функции mysql_connect и mysql_pcconnect. Но стоит отметить, что в таком режиме будут работать не все скрипты. Не будет работать WordPress, учтите этот фактор.

Обязательно контролируйте ресурсы. Чтобы увеличить безопасность в сфере DOS атак можно указать максимальное время выполнения для каждого скрипта, максимальное количество памяти и максимальное время чтения данных.

Отключайте функции, которые могут навредить Вашему серверу и посодействовать его взлому. Например, желательно отключать функции выполнения команды оболочки. Для отключения просто перечислите их в директиве disable_functions.

Настройка работы PHP через FastCGI способствует уменьшению использования памяти веб-сервера. При применении внешнего FastCGI сервера, нужно запускать его не от пользователя root, а от имени непривелигированного пользователя. Ведь PHP имеет функции, которые дают возможность выполнять команды оболочки. Не безопасно, если эти команды будут от суперпользователя.

Программное обеспечение всегда должно поддерживаться в актуальном состоянии. Регулярные обновления позволяют применить все патчи безопасности своевременно. Необходимо обновлять весь программный набор, не только сам PHP.

Установка модуля Apache mod_security может защитить php и ваше приложение от XSS и SQL-Inj атак.

Также рекомендуют регулярно просматривать файлы журналов Apache и PHP. В таком случае можно получить некоторые представление о том, как функционирует сервер и сделать проверку его уровня безопасности.

Включение отображения PHP ошибок возможно непосредственно в панели управления Cpanel. Для включения/отключения модулей PHP в панели управления cPanel также воспользуйтесь нашей инструкцией на блоге.

Надеемся, что наши советы помогут сделать Вашу работу с PHP более безопасной! Возможно, у Вас есть свои рекомендации по безопасности? Оставляйте свои комментарии.

 


Close Screen
Alla Rud
Статей: 574
Оцените статью:


Спасибо за отзыв
Рейтинг: 4.9 из 5 Голосов: 7