Обработка аватар

Discussion in 'PHP' started by .:EnoT:., 11 Mar 2008.

  1. .:EnoT:.

    .:EnoT:. Сексуальное чудовище

    Joined:
    29 May 2007
    Messages:
    803
    Likes Received:
    559
    Reputations:
    50
    Пишу я форум, дело дошло до аватар.
    Вопрос такой: Как грамотно обрабатывать заливку аватар? чтобы всякие кульхацкеры не лили авы с вредоносным кодом и как лучше всего с размером авок быть, ибо хекс-эдитором многие пользоваться умеют, слышал что по хидерам размер авок лучше не читать. Почитал несколько статей, у самого несколько мыслей...в общем всё смешалось в кучу, не знаю на чём остановиться....в общем кто что подскажет по этому поводу? Загрузку буду делать только с компа, удалённые хосты отмёл сразу...ну нафиг
     
    6 people like this.
  2. g-warning

    g-warning Elder - Старейшина

    Joined:
    28 Dec 2007
    Messages:
    76
    Likes Received:
    17
    Reputations:
    0
    скачай и посмотри в исходнике этого форума =)
    www.mvnforum.com
    там в новой версии куй че с авой сделаешь)))

    =)
     
  3. kolpeex

    kolpeex Member

    Joined:
    17 Feb 2008
    Messages:
    21
    Likes Received:
    8
    Reputations:
    0
    как вариант менять размер авы с некоторого размера до его же, т.е. узнаешь размеры рисунка и меняешь их на чуть большие и потом снова меняешь на прежние
     
    1 person likes this.
  4. NOmeR1

    NOmeR1 Everybody lies

    Joined:
    2 Jun 2006
    Messages:
    1,068
    Likes Received:
    783
    Reputations:
    213
    PHP:
    <?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 ))))
     
    4 people like this.
  5. .:EnoT:.

    .:EnoT:. Сексуальное чудовище

    Joined:
    29 May 2007
    Messages:
    803
    Likes Received:
    559
    Reputations:
    50
    да уж, не густо, думал больше советов будет, но хотя б на этом спасибо =/
    g-warning, из другого форума вытащить и переделать нетрудно, но самому разобраться и написать гораздо лучше и прикольней))

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

    ещё будут советы по поводу проверки на вредоносный код?
     
    3 people like this.
  6. mr.The

    mr.The Elder - Старейшина

    Joined:
    30 Apr 2007
    Messages:
    1,080
    Likes Received:
    456
    Reputations:
    38
    а может скриптом аватару уменьшать до нужного размера? сразу без проверки.
     
    2 people like this.
  7. etc

    etc Elder - Старейшина

    Joined:
    16 Feb 2008
    Messages:
    113
    Likes Received:
    175
    Reputations:
    1
    Было уже что-то подобное: /thread32694.html
     
  8. kolpeex

    kolpeex Member

    Joined:
    17 Feb 2008
    Messages:
    21
    Likes Received:
    8
    Reputations:
    0
    можно, кстати, еще антивирем проверять: наверняка, их эвристики распознают картинку, эксплуатирующую багу в каком-нить браузере :)))
     
  9. banned

    banned Banned

    Joined:
    20 Nov 2006
    Messages:
    3,324
    Likes Received:
    1,194
    Reputations:
    252
    NOmeR1, более легкий способ:

    PHP:
    <?php
    $image 
    getimagesize('image.jpg');
    if(!
    $image[0]) echo 'Это нифига не картинка!!!!';
    ?>
     
    2 people like this.
  10. Евгений Минаев

    Евгений Минаев Elder - Старейшина

    Joined:
    12 Nov 2007
    Messages:
    55
    Likes Received:
    169
    Reputations:
    159
    Exif_imagetype читает сигнатуру файла и проверяет на корректность.Я бы этой функцией не стал бы пользоваться, а применил бы самый эффективный метод imagecreatefrom*+imagecopyresampled+image* который вырежет из картинки всю ненужную информацию вроде дописанных в конце или в середине файла данных.GetImageSize использовать грешно xD

    PHP:
    /**
    * 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';
    }
     
    #10 Евгений Минаев, 13 Mar 2008
    Last edited: 13 Mar 2008
    6 people like this.