дядь, у меня на 73килофайла получилось 0,007с дельты на винде 54hrpm и 0,004с на 84килофайла на винте 72hrpm. тысячные доли секунды не считаю аргументом. так, перфоманс проверил на ноуте и сервере, про безопасность поговорили, привязку с ос отмели. еще что будет?
они поменяли механизм не так давно. поменяли его я так понял во всём что касает пхп и вебсервера. возможно во всём юниксе. хз. может я че путаю, но вроде как оно стало умнее и надёжнее.
С изображениями можно поступить так: допустим сразу после загрузки мы имеем $mime = $_FILES['attachement']['type']; это недостоверная информация, но это отправная точка для проверок. Код (PHP): // если браузер сказал, что это картинка if (strpos($mime, 'image/') === 0) { $size = @getimagesize($filename); // да, я знаю что такое "собака" if (!isset($size['mime']) || strpos($size['mime'], 'image/') !== 0) { throw new Exception('это ахтунг, а не картинка!'); } // тут нормальная работа с изображением } В документации пишут, что для той же цели можно использовать exif_imagetype(), она якобы быстрее. Но мы разве куда-то торопимся? Когда вслед за upload идет дорогая операция превью (или выдергивания картинок из видео потока), экономить наносекунды становится неприлично. Анлогично со звуком и видео. Я, к сожалению, не имел дела с обработкой аудио-видео, но верю, что есть подходящии функции, которые сгенерят ошибку или вернут пустую информацию если файл не тот, за кого себя выдает ))) Добавлено спустя 5 минут 42 секунды: p.s. Если говорить про мошенничество с изображениями, то можно, например, подклеить к картинке какую-то другую информацию, при этом картинка будет валидной и браузер её будет выводить. Можно потратить какое-то процессорное время еще и на такие проверки, но я считаю нас не должно волновать, что в конце нашего JPEG кто-то написал невидимое слово "XYЙ"! Главное, что картинка является картинкой.
Насколько я понимаю тот тип атаки, надо чтобы файл был доступен по его исходному имени. И это имя выглядит примерно так: MyImage.jpg.php
вроде его эксплуатировали добавлением пхп кода в картинку, а вот как ее заставляли работать как пхп файл не помню, помню что именно прогружали картинку с норм расширением
ну самый простой вариант это движки у которых инклюды через гет можно передать. тогда картинка загрузится в анализатор, который выдаст стандартный тип данных - plain/(text|html) и, найдя свои конструкции начнет их выполнение. в потоке будет отсебятина (оригинальный код картинки) и полезный для хакера результат выполнения кода
и все же есть. уж если не новые дырки, то люди, использующие старый софт. тут недавно помощи просили с 4м пыхом на борту. поностальгировал, кстати, от вашего сообщения =) в одном из моих первых "пабликов" скуэль запрос генерировался флеш-роликом и передавался сценарию через гет. и как-бы не в тени а пользователя перенаправляли к странице с таким подарком в адресной строке. сколько ж воды утекло с тех пор...
коллега обратил внимание, показательно сделал дапм, стер все нахер и залил дамп обратно. все через одну дыру.