Предотвратить выполнение загруженных файлов PHP?
В моем проекте пользователям разрешено загружать файлы любого типа. Мне нужно обеспечить безопасность от выполнения загруженных файлов, которые могут быть проанализированы php (*.php, *.html и т. Д.)
Есть ли способ сказать apache не анализировать файлы с php в web/uploads и просто отображать их в виде простого текста? Какие есть другие варианты?
3 ответа
Держите их все в одной папке и установите эту строку в каталоге .htaccess
файл:
php_flag engine off
Это также позаботится о других эксплойтах, таких как встраивание кода PHP в файлы.gif.
Вам нужна директива Apache SetHandler: http://httpd.apache.org/docs/current/mod/core.html
Это позволяет принудительно обрабатывать все файлы в каталоге определенным обработчиком. Так что-то вроде:
<Location /web/uploads>
SetHandler None
</Location>
должен делать то, что вы хотите.
Почему бы просто не переименовать расширения файлов при загрузке в .phps
?
Чтобы уточнить PHPS, это представление исходного кода файла PHP:
Чтобы уточнить:
file.php
=> file.phps
быстрый пример Google: