Решил добавить на свой сайт форму для того что бы пользователи могли загружать свои обои. Потом они естественно будут проходить модерацию, но не это важно. Меня интересуют способы запрета заливки левых файлов типа .php .phtml и т.п. Сейчас вот у меня есть такой код: PHP: if (substr($_FILES['filename']['type'],0,5) == 'image') { move_uploaded_file($_FILES['filename']['tmp_name'], "/img/wall".$name_image.""); } else { echo "Разрешена загрузка только изображений"; } Короче мне нужно что бы была возможность загружать только картинки. Что думаете насчет этого кода? Безопасен ли он? Можно ли его использовать в таких целях? Пока писал этот текст в голову пришла одна мысль, а что если загружать все картинки в один каталог, в котором будет эштеаццесс в котором будет прописано что бы все файлы в этом каталоге обрабатывались как картинки. Возможно ли так сделать? И опять же безопасность этого способа. И какие способы вы можете предложить? Интересны любые идеи по этой теме.
На счет безопасности такого способа ничего скачать не могу, но когда я делал подобный скрипт, то проверял загружаемые файлы по расширению(последние 4 символа должны были быть .jpg).
2InferNo23 (((((((((((((((((((((((( ты же хакер!!!!(((((( 2blaga ((((((((((((((((((((((((((((( ты же хакер!!!!(((((((
Самый верный способ - натравить getimagesize или exif_imagetype на полученную картинку - если матюгнутся, знач подстава, нет - все в порядке, можешь копировать. Кстати, последняя предпочтительней - работает быстрее и не матерится а тихо возвращает false
На мой взляд: полная фильтрация имени файла на его расширения. Да и .htaccess с Code: RemoveType .php .pl .php5 .php4 .php3 .phtml .cgi самое то. Можно и на кол-во расширений тоже проверять можно...
Helios говорит дело по поводу getimagesize а еще в папку куда загружать картинки запретить выполнение скриптов! + фильтр типа при загрузке (это то что ты уже написал) В таком сочетании это будет безопасно!
да нахрена вы такие сложности то придумываете. Нужно: а) проверять расширение файла (символы после последней точки) на предмет соответствия списку разрешенных (их всегда будет меньше чем запрещенных и так надежнее т.к. ничего случайно не упустишь) б) чтоб были прямыми руками настроены mime типы (т.е. чтоб не случилась касяка с выполнением картинки как скрипта) все, имхо.
Ну а по сути надо все предложенные методы скомпоновать и использовать вместе, тогда будет безопасно ettee А насчет скрина, это сработает только если в .htaccess будет AddType application/x-httpd-php jpg