Друзья, дабы не утомлять длинной речью, решил просто поделиться (кому-то напомнить) простой способ защиты от заливаемых скриптов в папки загрузок.
Ситуация: есть папка uploads, куда разрешено заливать, скажем изображения. И права у нее всем ясно какие. Так вот, обладатели некоторых движков, все-таки имеющих некоторые уязвимости (неважно по какой причине) могут иногда наткнуться на залитые в эту папку скрипты, как к к своему удивлению я это обнаружил у себя. А это, сами понимаете, иногда чревато последствиями.
Так вот теперь, во все папки для аплоада файлов я добавляю файл .htaccess (если его там нет) со следующими строками:
Теперь, если директивы .htaccess у Вас поддерживаются, даже если файлы будут залиты, они не будут выполняться. К слову, расширение может быть не только .php а любое другое, или их набор через пробел. Опуская в данном посте проблему замены расширений, правильно настроенных доступов — мы получаем вполне простое и быстрое, а главное выполнимое для слабо квалифицированных пользователей решение уменьшения критических уязвимостей.
p.s. В дополнение скажу, что когда приходится использовать аплоад изображений в своем коде — кроме стандартных средств ограничения заливаемых файлов использую для записи не просто сохранение — а загрузку изображения из переданного POST библиотекой GD, и сохранение на диск изображения вышеназванной библиотекой, так как таким методом кроме изображений ничего не сохранишь. Может и параноидально, зато с вышеописанным .htaccess дает неплохой результат.
Ситуация: есть папка uploads, куда разрешено заливать, скажем изображения. И права у нее всем ясно какие. Так вот, обладатели некоторых движков, все-таки имеющих некоторые уязвимости (неважно по какой причине) могут иногда наткнуться на залитые в эту папку скрипты, как к к своему удивлению я это обнаружил у себя. А это, сами понимаете, иногда чревато последствиями.
Так вот теперь, во все папки для аплоада файлов я добавляю файл .htaccess (если его там нет) со следующими строками:
RemoveHandler .php
AddType text/html .php
AddHandler server-parsed .php
Теперь, если директивы .htaccess у Вас поддерживаются, даже если файлы будут залиты, они не будут выполняться. К слову, расширение может быть не только .php а любое другое, или их набор через пробел. Опуская в данном посте проблему замены расширений, правильно настроенных доступов — мы получаем вполне простое и быстрое, а главное выполнимое для слабо квалифицированных пользователей решение уменьшения критических уязвимостей.
p.s. В дополнение скажу, что когда приходится использовать аплоад изображений в своем коде — кроме стандартных средств ограничения заливаемых файлов использую для записи не просто сохранение — а загрузку изображения из переданного POST библиотекой GD, и сохранение на диск изображения вышеназванной библиотекой, так как таким методом кроме изображений ничего не сохранишь. Может и параноидально, зато с вышеописанным .htaccess дает неплохой результат.