Suhosin защита от атак

Suhosin — патч безопасности  к PHP,  является надежным и простым способом для защиты веб-сервера и PHP в частности,  при этом он не потребляет дополнительно ресурсов сервера, будь то память или процессор.

Сайт разработчика – http://www.hardened-php.net/suhosin/

Настрока Suhosin: инструкция на английском

Для отключения Suhosin в .htaccess (Для PHP как модуль)

php_flag suhosin.simulation 1

Для отключения в php.ini (PHP как CGI)

suhosin.simulation on

Таблица параметров Suhosin

ОпцияЗначение по умолчаниюВозможные значенияПояснение
Опции протоколирования
suhosin.log.syslogS_ALL (511)S_MEMORY, S_MISC, S_VARS, S_FILES, S_INCLUDE, S_SQL, S_EXECUTOR, S_MAIL, S_SESSION, S_ALLУказывает, какие классы тревог регистрируются в syslog. Вне зависимости от настроек S_MEMORY регистрируется всегда
suhosin.log.syslog.facilityLOG_USER (9)LOG_KERN, LOG_USER, LOG_MAIL, LOG_DAEMON, LOG_AUTH LOG_SYSLOG, LOG_LPR, LOG_NEWS, LOG_UUCP, LOG_CRON, LOG_AUTHPRIV, LOG_LOCAL0 … LOG_LOCAL7Указывает на компонент, который будет заносить сообщения в syslog
suhosin.log.syslog.priorityLOG_ALERT (1)LOG_EMERG, LOG_ALERT, LOG_CRIT, LOG_WARNING, LOG_NOTICE, LOG_INFO, LOG_DEBUG, LOG_ERRПриоритет сообщения
suhosin.log.sapiS_ALLОпределяет, какие классы тревог регистрируются через SAPI
suhosin.log.script0Какие классы тревог будут регистрироваться через внешний скрипт, S_MEMORY не может регистрироваться, так как его появление означает, что процесс, возможно, в нестабильном состоянии
suhosin.log.phpscriptКакие классы тревог будут регистрироваться через PHP-скрипт, S_MEMORY также не может регистрироваться
suhosin.log.script.nameПолный путь к внешнему скрипту. Скрипту будет передано два параметра. Первый – класс тревоги в буквенной нотации, второй – сообщение
suhosin.log.phpscript.nameПолный путь к внешнему php-скрипту. Ему будет передано два параметра: SUHOSIN_ERRORCLASS и SUHOSIN_ERROR, назначение которых аналогично предыдущему
suhosin.log.use-x-forwarded-for0 (отключено)Обычно IP-адрес атакующего извлекается из переменной REMOTE_ADDR, включение этой опции позволит использовать HTTP-заголовок X-Forwarded-For (например, используется прокси)
Опции исполнения
suhosin.executor.max_depth0 (отключено)Задает максимально разрешенную глубину стека, после чего выполнение скрипта будет остановлено
suhosin.executor.include.max_traversal0Определяет, сколько знаков ../ в запросе будет расценено как атака
suhosin.executor.include.whitelistРазделенный запятой список разрешенных или запрещенных URL, которые можно включить в скрипт. Если не указан белый список, используется только черный, если не указаны оба, то вставка URL запрещена
suhosin.executor.include.blacklist
suhosin.executor.func.whitelistСписок разрешенных или запрещенных для вызова функций. Если белый список пуст, анализируется черный, если пусты оба, то функции запрещены
suhosin.executor.func.blacklist
suhosin.executor.eval.whitelistСписок функций, разделенных запятой, которые разрешено или запрещено запускать посредством eval(). Если белый список пуст, анализируется черный, если пусты оба, то вызов функции через eval() запрещено
suhosin.executor.eval.blacklist
suhosin.executor.disable_eval0Глобальное отключение использования eval(). В журнале будут отображены все нарушения этого правила, поэтому можно отследить все случаи использования eval()
suhosin.executor.disable_emodifier0Модификатор /e внутри функции preg_replace() позволяет выполнять код, разработчики рекомендуют отключить ее использование и применять preg_replace_callback()
Дополнительные опции
suhosin.simulation0Очень полезная опция, позволяет переводить систему в режим регистрации нарушений, то есть создав правила, вы можете некоторое время только регистрировать нарушения, чтобы затем комплексно оценить работу скриптов
suhosin.mail.protect00, 1, 2Включает защиту функции mail(). 0 – отключена, 1 – контроль Subject:, To:,
2 – дополнительно To:, CC:, BCC:
suhosin.memory_limit0Управление изменением memory_limit, при 0 – изменение запрещено, любое число показывает предел в Мб, при запросе скриптом большего значения его выполнение будет остановлено
Опции прозрачного шифрования
suhosin.session.encrypt1 (включено)Разрешение/отключение шифрования сессии
suhosin.session.cryptkeyКлюч для шифрования сессии
suhosin.session.cryptua1Зависимость ключа шифрования от полей User-Agent, Documentroot
suhosin.session.cryptdocroot
suhosin.session.cryptraddr00-4Число октетов REMOTE_ADDR, от которых будет зависить ключ шифрования
suhosin.cookie.encrypt1Шифрование Cookie. Значение остальных опций suhosin.cookie.cryptkey, suhosin.cookie.cryptua, suhosin.cookie.cryptdocroot, suhosin.cookie.cryptraddr аналогично
Опции фильтрации
suhosin.filter.actionОпределяет реакцию Suhosin на нарушение фильтров. По умолчанию переменная блокируется, 402 – останавливает скрипт и возвращает код ответа HTTP 402; [302,]http://www.site.com – перенаправляет по указанному адресу, в квадратных скобках может стоять код ответа; [402,]/var/scripts/badguy.php – перенаправляет на указанный скрипт
suhosin.cookie.max_array_depth100Максимальная глубина массива, зарегистрированного через cookie
suhosin.cookie.max_array_index_length64Определяет максимальную длину индексов массива переменных, зарегистрированных через cookie
suhosin.cookie.max_name_length64Определяет максимальную длину имени переменных, зарегистрированных через cookie. Для массивов это имя перед индексом
suhosin.cookie.max_totalname_length256Определяет максимальную длину полного имени переменных, зарегистрированных через cookie
suhosin.cookie.max_value_length10000Определяет максимальную длину переменной, зарегистрированную через cookie
suhosin.cookie.max_vars100Определяет максимальное количество переменных, зарегистрированных через cookie
suhosin.cookie.disallow_nul1Если 1, то символы ASCIIZ в переменных не разрешены
suhosin.get.max_array_depth50Максимальная глубина массива, зарегистрированного через URL Значение остальных опций (suhosin.get.max_array_index_length, suhosin.get.max_name_length, suhosin.get.max_totalname_length, suhosin.get.max_value_length, suhosin.get.max_vars, suhosin.get.disallow_nul) сопоставимы с предыдущими
suhosin.post.max_array_depth100Максимальная глубина массива, зарегистрированного через POST. Значение остальных опций (suhosin.post.max_array_index_length, suhosin.post.max_name_length, suhosin.post.max_totalname_length, suhosin.post.max_value_length, suhosin.post.max_vars, suhosin.post.disallow_nul) сопоставимы с предыдущими
suhosin.request.max_array_depth100Максимальная глубина массива, зарегистрированного через все доступные методы URL, GET , POST или COOKIE. Может быть индивидуально переопределена предыдущими опциями. Также доступны параметры suhosin.request.max_array_index_length, suhosin.request.max_totalname_length, suhosin.request.max_value_length, suhosin.request.max_vars, suhosin.request.max_varname_length, suhosin.request.disallow_nul
suhosin.upload.max_uploads25Максимальное число файлов, пересылаемых одним запросом
suhosin.upload.disallow_elf1Установка запрета на загрузку ELF-файлов
suhosin.upload.disallow_binary0Установка запрета на загрузку двоичных файлов
suhosin.upload.remove_binary0Установка удаления двоичного контента из загружаемых файлов
suhosin.upload.verification_scriptПуть к скрипту, который проверяет загружаемый файл. В качестве параметра он получит имя файла, для продолжения загрузки скрипт должен вывести 1 в stdout
suhosin.session.max_id_length128Максимальная длина идентификатора сессии, в случае превышения указанного значения будет создан новый идентификатор