PHP — очень популярный язык сценариев для веб-сайтов, но его внутренняя безопасность очень слаба. В этой статье описывается план улучшения PHP (проект Hardened-PHP) и новый план Suhosi, обеспечивающий расширенную настройку безопасности PHP.
PHP — спорный, но самый популярный язык сценариев для веб-сайтов. Он популярен из-за своей низкой цены. Однако эта низкая цена привела к тому, что все больше и больше веб-приложений написаны на PHP, и в то же время все больше и больше самого PHP подвергается уязвимостям безопасности. особенности показывают, что PHP крайне ненадежен, но в то же время сам язык сценариев очень гибкий, и с его помощью легко реализовать код, но эти коды раздуты и небезопасны, хотя в этом смысле в нем еще много пользователи. Можно предположить, что снова и снова приложения всех типов обнаруживают эту уязвимость: уязвимы для SQL-инъекций, межсайтовых сценариев, произвольного выполнения и многого другого.
Поскольку встроенные меры безопасности PHP, такие как Safe_mode и open_basedir, игнорируются, проект улучшения PHP создает более безопасный PHP, а также выполняет проверки PHP. Первоначально это достигалось с помощью расширенных патчей PHP, которые требовали исправления и перекомпиляции самого PHP. Недавно проект PHP Enhancement Project выпустил новый проект под названием Suhosin.
Sohosin состоит из двух частей: Первая часть — это патч PHP. Этот патч усиливает сам движок Zend, чтобы избежать возможных переполнений буфера и предотвратить связанные с этим недостатки. Вторая часть — это расширение Suhosin, которое представляет собой отдельный модуль для PHP. Две части могут работать вместе, или расширение может работать независимо.
Разработчики не хотят поддерживать свои собственные установки PHP для обеспечения безопасности и, конечно, предпочитают использовать PHP непосредственно в системе распространения Linux, предоставленной поставщиком, используя модули расширения для обеспечения большего количества функций безопасности, которых не может иметь сам PHP.
Расширение легко установить; его также можно установить через PECL или загрузить и скомпилировать:
$ tar xvzf suhosin-0.9.17
$ cd suhosin-0.9.17
$ phpize
$ ./configure
$ make
$ sudo make install
Использование suhosin вам также необходимо добавить /etc/php.ini, как показано ниже:
Extension=suhosin.so
Для большинства людей достаточно параметров конфигурации по умолчанию. Чтобы усилить настройки, вы можете добавить соответствующие значения в /etc/php.ini. Различные варианты конфигурации подробно представлены на веб-сайте. Эти инструкции помогут вам выполнить первоначальную настройку.
Используя Suhosin, вы можете получить некоторые журналы ошибок. Вы можете поместить эти журналы в системный журнал или записать их в любые другие файлы журналов одновременно; он также может создавать черные и белые списки для каждого виртуального хоста, вы можете фильтровать GET и POST; запросы, загрузка файлов и файлы cookie. Вы также можете отправлять зашифрованные сеансы и файлы cookie, настроить хранилище, которое невозможно отправить, и многое другое. В отличие от оригинального патча для усиления защиты PHP, Suhosin совместим со сторонними расширениями, такими как Zend Optimizer.