Предотвратить выполнение загруженных файлов 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:

Другие вопросы по тегам