#php #javascript #html #безопасность
На моем сайте есть форма для загрузки файла, в которой у пользователя есть возможность, написав комментарий, прикрепить файл. Загрузку файла я не контролирую: нет ограничения по размеру, по типу и т.п. Что может злоумышленник сделать с такой загрузкой файла, где нет ни каких ограничений? Какие есть еще защиты кроме ограничения по размеру, типу?
Ответы
Ответ 1
Злоумышленник при заливке произвольного файла к вам на сервер в принципе может все что угодно. Файл может быть скриптом 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Ответ 2
Самое опасное, что может произойти - удаленное выполнение кода. Это означает, что злоумышленник может загрузить свой скрипт и запустить его. Что будет в скрипте зависит только от фантазии злоумышленника. Я вижу два способа, как убрать данную уязвимость: Проверять загружаемый файл. Если через Вашу форму будут загружать изображения, то необходимо проверить, является ли загружаемый файл изображением, и т.п. Убрать права на выполнение файлов. Таким образом злоумышленник сможет спокойно просматривать изображения, но при этом у него не будет возможности выполнить, например, php скрипт.
Комментариев нет:
Отправить комментарий