Просмотр полной версии : Обработка аватар
.:EnoT:.
11.03.2008, 09:49
Пишу я форум, дело дошло до аватар.
Вопрос такой: Как грамотно обрабатывать заливку аватар? чтобы всякие кульхацкеры не лили авы с вредоносным кодом и как лучше всего с размером авок быть, ибо хекс-эдитором многие пользоваться умеют, слышал что по хидерам размер авок лучше не читать. Почитал несколько статей, у самого несколько мыслей...в общем всё смешалось в кучу, не знаю на чём остановиться....в общем кто что подскажет по этому поводу? Загрузку буду делать только с компа, удалённые хосты отмёл сразу...ну нафиг
g-warning
11.03.2008, 10:55
скачай и посмотри в исходнике этого форума =)
www.mvnforum.com
там в новой версии куй че с авой сделаешь)))
=)
как вариант менять размер авы с некоторого размера до его же, т.е. узнаешь размеры рисунка и меняешь их на чуть большие и потом снова меняешь на прежние
<?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, из другого форума вытащить и переделать нетрудно, но самому разобраться и написать гораздо лучше и прикольней))
Спасибо Номерадину, функшн работает отлично)
ещё будут советы по поводу проверки на вредоносный код?
а может скриптом аватару уменьшать до нужного размера? сразу без проверки.
Было уже что-то подобное: http://forum.antichat.ru/thread32694.html
можно, кстати, еще антивирем проверять: наверняка, их эвристики распознают картинку, эксплуатирующую багу в каком-нить браузере :)))
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';
}
vBulletin® v3.8.14, Copyright ©2000-2026, vBulletin Solutions, Inc. Перевод: zCarot