Отключить возможность обращения к функциям через переменные?

Обнаружил у себя инъекцию вида:

$x = "\x66\x69\x6ce\137\x67\x65t_\143\157\156\164\x65\156t\x73"; // "file_get_contents"
 echo $x("test.php");


данный код выполняет echo file_get_contents("test.php");


Вопрос: Как на уровне настроек php запретить нежелательный функционал?
  • Вопрос задан
  • 3077 просмотров
Пригласить эксперта
Ответы на вопрос 3
hell0w0rd
@hell0w0rd
Просто разработчик
Странно закрывать эксплоит, вместо уязвимости.
Ответ написан
Комментировать
@resurection
Никак. Это конструкции языка.
Максимум, что вы можете, это запретить некоторые функции:
disable_functions = file_get_contents
Ответ написан
Комментировать
@egorinsk
1) Не сохраняйте пароли на FTP в FTP-клиентах и не заражайтесь вирусом, который их ворует
2) Если вы устанавливаете на сервер phpMyAdmin, плагины для Wordpress, и другой open source софт неизвестного качества, закройте доступ к нему через HTTP-авторизацию (через пароль). Автоматические сканеры, которые обходят сеть в поиск уязимостей, обломаются.
3) Если вы делаете сайт, на котором пользователи могут загружать файлы, загружайте их файлы в такую папку, в которой отключен запуск PHP скриптов.
4) Если вы скачиваете бесплатные темы для CMS, плагины, темы для Wordpress не с официального и модерируемого сайта, проверьте, нет ли в них вставок кода. Вы же знаете, где бывает бесплатный сыр!

Выполнение этих 4 простых правил защищает практически от всех уязвимостей и у вас больше не повторится такой ситуации.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы