PDA

Просмотр полной версии : Обработка аватар


.:EnoT:.
11.03.2008, 09:49
Пишу я форум, дело дошло до аватар.
Вопрос такой: Как грамотно обрабатывать заливку аватар? чтобы всякие кульхацкеры не лили авы с вредоносным кодом и как лучше всего с размером авок быть, ибо хекс-эдитором многие пользоваться умеют, слышал что по хидерам размер авок лучше не читать. Почитал несколько статей, у самого несколько мыслей...в общем всё смешалось в кучу, не знаю на чём остановиться....в общем кто что подскажет по этому поводу? Загрузку буду делать только с компа, удалённые хосты отмёл сразу...ну нафиг

g-warning
11.03.2008, 10:55
скачай и посмотри в исходнике этого форума =)
www.mvnforum.com
там в новой версии куй че с авой сделаешь)))

=)

kolpeex
11.03.2008, 11:17
как вариант менять размер авы с некоторого размера до его же, т.е. узнаешь размеры рисунка и меняешь их на чуть большие и потом снова меняешь на прежние

NOmeR1
11.03.2008, 16:56
<?php
function image_bool($filename, $width, $height) {
$size = getimagesize($filename);
if($size[0] <= $width && $size[1] <= $height) {
if($size[2] != 0) {
return true;
} else {
return false;
}
} else {
return false;
}
}
?>
bool image_bool ( string filename, int width, int height )
Возвращает TRUE, если изображение корректно, его ширина не больше, чем width, а длинна не больше height ))))

.:EnoT:.
12.03.2008, 08:21
да уж, не густо, думал больше советов будет, но хотя б на этом спасибо =/
g-warning, из другого форума вытащить и переделать нетрудно, но самому разобраться и написать гораздо лучше и прикольней))

Спасибо Номерадину, функшн работает отлично)

ещё будут советы по поводу проверки на вредоносный код?

mr.The
12.03.2008, 10:16
а может скриптом аватару уменьшать до нужного размера? сразу без проверки.

etc
12.03.2008, 13:45
Было уже что-то подобное: http://forum.antichat.ru/thread32694.html

kolpeex
13.03.2008, 07:17
можно, кстати, еще антивирем проверять: наверняка, их эвристики распознают картинку, эксплуатирующую багу в каком-нить браузере :)))

Isis
13.03.2008, 07:46
NOmeR1, более легкий способ:

<?php
$image = getimagesize('image.jpg');
if(!$image[0]) echo 'Это нифига не картинка!!!!';
?>

Евгений Минаев
13.03.2008, 08:56
Exif_imagetype читает сигнатуру файла и проверяет на корректность.Я бы этой функцией не стал бы пользоваться, а применил бы самый эффективный метод imagecreatefrom*+imagecopyresampled+image* который вырежет из картинки всю ненужную информацию вроде дописанных в конце или в середине файла данных.GetImageSize использовать грешно xD


/**
* When a correct signature is found, the appropriate *
* constant value will be returned otherwise the return
* value is FALSE. The return value is the same
* value that getimagesize() returns in index 2 but exif_imagetype()
* is much faster.
*/
if (exif_imagetype('image.gif') != IMAGETYPE_GIF) {
echo 'The picture is not a gif';
}