PHP и MySQL

Cтатья "Обеспечение безопасности веб-сайтов" предоставлена Sophos Plc и SophosLabs.

Декабрь 2007 г.

PHP является одним из наиболее распространенных серверных скриптовых языков. Он отличается обширнейшей базой функционального кода, простым синтаксисом, адаптируемым кодом и, что наиболее важно, возможностью взаимодействия с самыми разными базами данных. MySQL — это одна из наиболее популярных СУБД, используемых в сочетании с PHP. Причина заключается в ее эффективности, богатой функциональности, а также простоте настройки и использования.

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

Вот несколько советов по настройке (разработка безопасного кода обсуждается ниже), касающихся переменных в файле «php.ini»:

  • Необходимо установить переменную register_globals в значение off.

  • Необходимо установить переменную safe_mode в значение on.

  • В переменной open_basedir следует указать базовый каталог веб-сайта.

  • Необходимо установить переменную display_errors в значение off.

  • Необходимо установить переменную log_errors в значение on.

  • Необходимо установить переменную allow_url_fopen в значение off.

Дополнительные сведения, касающиеся этих настроек и причин, по которым они играют столь важную роль, можно найти в следующих источниках: [7,8,9].

При установке MySQL создается база данных «test», используемая по умолчанию, и открытая учетная запись «root» без пароля. Данной учетной записи автоматически предоставляется полный доступ ко всем прочим базам данных на сервере. В связи с этим необходимо проделать следующее:

  • Сразу изменить пароль учетной записи «root».

  • Создать новую учетную запись MySQL и предоставить ей минимально необходимые права.

  • Удалить базу данных «test» и соответствующих пользователей.

К следующему разделу