Существует ли опция в Apache для проверки файлов PHP на вредоносный код прежде, чем проанализировать их?

В основном я хотел бы, чтобы Apache проверил файлы PHP на определенные шаблоны прежде, чем проанализировать их. Если бы эти файлы PHP соответствуют шаблонам, я хотел бы отправить что-то еще в замене назад пользователю.

Существует ли способ сделать это?

0
задан 24 March 2015 в 14:03
3 ответа

Нет, это невозможно.

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

Каков ваш пример использования? Проверка кода должна происходить полностью вне этого процесса.


Пара дополнительных мыслей по поводу вашего комментария ниже:

  1. Если вы думаете, что это может быть автоматизированный способ «антивирусного сканирования», вы будете разочарованы.
  2. Если вы думаете, что это сопоставления нескольких простых регулярных выражений будет достаточно, вы также будете разочарованы, так как количество регулярных выражений, которые вам нужно сопоставить, почти бесконечно.
  3. Лучшее, что вы можете сделать, это спроектировать свой общий хостинг-сервер так, чтобы он был как как можно более безопасным - изоляция каждого клиента в его собственном контейнере, возможно, так, чтобы любой ущерб, который они наносят, ограничивался их собственным счетом и не мог распространяться дальше этого.
4
ответ дан 4 December 2019 в 12:28

Я думаю, что для того, чего вы пытаетесь достичь, вам следует взглянуть на mod_security .

-2
ответ дан 4 December 2019 в 12:28

Предупреждение: Я подозреваю, почему у вас возникла эта проблема с самого начала. Если вы считаете, что потенциально вредоносный код может быть помещен в каталог, который обслуживает apache, вы можете переосмыслить текущую настройку веб-сервера.

С учетом сказанного вы можете использовать PHP disable_functions конфигурация . Функции могут захотеть отключить:

  • exec
  • system
  • shell_exec
  • popen
  • allow_url_fopen
  • allow_url_include

Более неаккуратным решением было бы удалить файлы PHP, соответствующие регулярному выражению:

find /var/www -iname '*.php' | xargs egrep -l '(eval|system)\(' | xargs rm

Не тестировал, но, конечно, вы должны придумать свою собственную команду и быть уверенным, что понимаете ее, прежде чем применять.

1
ответ дан 4 December 2019 в 12:28

Теги

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