PDA

Просмотр полной версии : Проверка загруженных на сервер изображений средствами Perl


Semyon Tyan
13.12.2007, 08:19
Здравствуйте!
Не так давно я начал писать perl-скрипты для web и совсем недавно столкнулся с проблемой проверки корректности содержимого изображения, которое закачивается пользователем, например аватар на форуме. Может кто знает, как это реализовывается или хотя бы линк на ресурс подкинет?

Maksim Kolosov
13.12.2007, 11:21
Через модуль Image::Magick вроде можно было определять и менять ширину и высоту изображения , и конвертировать их в другой формат. Попробуйте поискать в поисковиках документацию по нему.

Semyon Tyan
14.12.2007, 09:37
Спасибо, буду искать...

Aleksandr Vishinskiy
15.12.2007, 10:21
Посмотри здесь:
http://netfactory.dk/technology/perl/graphics
http://search.cpan.org/~addi/Imager-0.43/lib/Imager/Files.pod
http://www.google.com/search?q=working+with+images+Perl&hl=ru&lr=&client=opera&rls=ru&start=30&sa=N

Semyon Tyan
15.12.2007, 15:09
Спасибо конечно, но мне не столько нужна "working with images Perl", сколько просто удостовериться, что, к примеру, загруженный аватар это именно изображение, а не файл, при помощи которого можно осуществить взлом. Точнее сказать, возможно ли через специально сформатированный файл загружаемый как картинку, вызвать деструктивные действия?

Aleksandr Vishinskiy
15.12.2007, 18:13
Если ты имеешь в виду сниффер(как например античатовский) то он будет работать только если у тя на странице где отображается аватар есть XSS,по другому вроде никакие деструктивные действия не получаться.В любом случае снифер рисует картинку (размером 1*1 пикселей) так что картинка будет.Ты можешь это предотвратить проверкой загружаемой картинки по ее размеру,т.е. только фиксированные размеры (например 128*128 ) если не подходит то дальше включаешь фантазию, но это опять же обойти насложно(просто рисовать картинку большего размера или рендомом из готовых картинок рисовать любую).

Ruslan Juldashev
15.12.2007, 18:42
Спасибо конечно, но мне не столько нужна "working with images Perl", сколько просто удостовериться, что, к примеру, загруженный аватар это именно изображение, а не файл, при помощи которого можно осуществить взлом. Точнее сказать, возможно ли через специально сформатированный файл загружаемый как картинку, вызвать деструктивные действия?
Вам просто нужно проверит META информацию файла. Как это делается на perl я не знаю, но запрос для гугла у вас теперь есть.

Maksim Kolosov
17.12.2007, 12:22
Спасибо конечно, но мне не столько нужна "working with images Perl", сколько просто удостовериться, что, к примеру, загруженный аватар это именно изображение, а не файл, при помощи которого можно осуществить взлом. Точнее сказать, возможно ли через специально сформатированный файл загружаемый как картинку, вызвать деструктивные действия?
Вам просто нужно проверит META информацию файла. Как это делается на perl я не знаю, но запрос для гугла у вас теперь есть.

Тогда используйте модуль Image::ExifTool
Через него можно просматривать все свойства изображения, а не только метаданные.