Arhar Опубликовано 11 Апреля 2013 Жалоба Поделиться Опубликовано 11 Апреля 2013 (изменено) Есть такая статья http://php.webtutor....n-a-jpeg-image/В статье есть картинка, которая проходит проверку функцией getimagesizeТакая картинка может быть загружена в виде аватара и при правильно сложившихся звездах (настройках хостинга) вызвана на исполнение.Чтобы избежать такой участи, надо изменить функцию загрузкив 2.х.х это ./ips_kernel/class_upload.phpтам есть фрагмент, отвечающий за getimagesizeтуда же надо допилить код, чтобы получилось вот так (2.1.7): $img_attributes = @getimagesize( $this->saved_upload_name ); if ( ! is_array( $img_attributes ) or ! count( $img_attributes ) ) { // Unlink the file first @unlink( $this->saved_upload_name ); $this->error_no = 5; return; } else if ( ! $img_attributes[2] ) { // Unlink the file first @unlink( $this->saved_upload_name ); $this->error_no = 5; return; } else if ( $img_attributes[2] == 1 AND ( $this->file_extension == 'jpg' OR $this->file_extension == 'jpeg' ) ) { // Potential XSS attack with a fake GIF header in a JPEG @unlink( $this->saved_upload_name ); $this->error_no = 5; return; } if($FILE_TYPE != $img_attributes['mime']) { @unlink( $this->saved_upload_name ); $this->error_no = 5; return; } if(in_array($FILE_TYPE,array('image/jpeg','image/jpg'))) { $im=imagecreatefromjpeg($this->saved_upload_name); imagejpeg($im,$this->saved_upload_name); imagedestroy($im); } else if($FILE_TYPE=='image/gif') { $im=imagecreatefromgif($this->saved_upload_name); imagegif($im,$this->saved_upload_name); imagedestroy($im); } else if($FILE_TYPE=='image/png') { $im=imagecreatefrompng($this->saved_upload_name); imagepng($im,$this->saved_upload_name); imagedestroy($im); } else { @unlink( $this->saved_upload_name ); $this->error_no = 5; return; }мой код начинается с if($FILE_TYPE != $img_attributes['mime']) Изменено 11 Апреля 2013 пользователем Arhar еще один фикс Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Wartys Опубликовано 14 Сентября 2013 Жалоба Поделиться Опубликовано 14 Сентября 2013 (изменено) А если формат файла "jpe"? И хотелось бы понять, что делает прибавка к пенсии коду. Изменено 14 Сентября 2013 пользователем Wartys Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Arhar Опубликовано 2 Октября 2013 Автор Жалоба Поделиться Опубликовано 2 Октября 2013 пересоздает файл картинку средствами gd библиотекикод вируса отрезается в таком случае по любомуформат файла не имеет значения, имеет его миме-тип Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Рекомендуемые сообщения
Присоединиться к обсуждению
Вы можете ответить сейчас, а зарегистрироваться позже. Если у вас уже есть аккаунт, войдите, чтобы ответить от своего имени.