На моем сайте есть форма для загрузки файла, в которой у пользователя есть возможность, написав комментарий, прикрепить файл. Загрузку файла я не контролирую: нет ограничения по размеру, по типу и т.п.
Что может злоумышленник сделать с такой загрузкой файла, где нет ни каких ограничений?
Какие есть еще защиты кроме ограничения по размеру, типу?
Ответ
Злоумышленник при заливке произвольного файла к вам на сервер в принципе может все что угодно. Файл может быть скриптом php или другим видом cgi и дать злоумышленнику полный доступ на ваш хостинг. А может быть каким нибудь скриптом/выполнимым файлом, который сработает в браузерах ваших пользователей.
Защита:
Проверять тип файла и не по расширению, а по внутреннему содержимому.
Если это картинки то в браузеры к пользователям они должны попадать только в виде
Скрипт загружающий файлы должен исключить наличие символов / и .. в именах файлов. Что бы через него нельзя было залить файл в произвольную папку на сервере
Папка в которую заливаются файлы должна быть защищена от выполнения скриптов из нее. Для этого надо в .htaccess в этой папке (для apache) написать следующее:
php_flag engine 0
RemoveHandler .php
AddType "text/html" .php .cgi .pl .fcgi .fpl .phtml .shtml .php2 .php3 .php4 .php5 .asp .jsp
Options -ExecCGI -Indexes
Комментариев нет:
Отправить комментарий