PHP файл выполняется несмотря на использование ForceType image / jpeg в .htaccess - PullRequest
2 голосов
/ 29 января 2020

Чтобы предотвратить выполнение файлов PHP при загрузке в каталог с изображениями, я создал файл .htaccess, содержащий только ForceType image/jpeg, расположенный в этом каталоге.

Хотя это успешно вызывает evil.txt чтобы быть интерпретированным как файл изображения при открытии браузером, evil.php выполняется очень хорошо (он отображает текст в браузере). Я даже пытался нацелить его напрямую:

<FilesMatch "evil.php">
    ForceType image/jpeg
</FilesMatch>

Но это тоже не работает.

1 Ответ

1 голос
/ 29 января 2020

Это две совершенно не связанные вещи. ForceType для клиента, а не для веб-сервера. Интерпретация PHP - это ваш apache httpd веб-сервер. То, как он интерпретирует файл как PHP или нет, основано на вашей директиве FilesMatch, содержащей SetHandler, которая позволяет httpd знать, что эти файлы go до mod_php. Эти две вещи совершенно не связаны друг с другом.

Другими словами, вы, вероятно, думаете (очень умно), что делаете что-то, что собирается сделать вашу apache конфигурацию httpd more безопасно. Уверяю вас, что это не так. Файлы, которые не заканчиваются на .php, не будут go до php в этом сценарии конфигурации. И так как вы контролируете, какие файлы называются в вашей сети root, это не должно быть проблемой. Просто не позволяйте пользователю управлять именами файлов на вашем сервере. Это так просто

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...