Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Как защитится от скрипта в картинке
 
 автор: CrazyAngel   (10.04.2006 в 09:46)   письмо автору
 
 

?

   
 
 автор: cheops   (10.04.2006 в 13:24)   письмо автору
 
   для: CrazyAngel   (10.04.2006 в 09:46)
 

А не нужно от него защищаться - он просто не выполнится... Ведь картинку грузит не сервер, а браузер, а браузер картинку использует для отображения, а не для выполнения скриптов...

   
 
 автор: Trianon   (10.04.2006 в 13:30)   письмо автору
 
   для: cheops   (10.04.2006 в 13:24)
 

Речь, видимо, идет о загрузке аватар, личных фотографий и прочих разрешенных изображений пользователями портала, и о возможности под их видом положить на сервер вредноносный php-код и затем выполнить его.

Крайне неприятный вид атаки.

Защита выполняется
1, ... путем защиты файлов .htaccess от перезаписи и удаления.
2, путем строгой проверки расширений загружаемых файлов.

   
 
 автор: CrazyAngel   (10.04.2006 в 14:22)   письмо автору
 
   для: Trianon   (10.04.2006 в 13:30)
 

Расширения фалов тут же не играет роли там в картинке =)

1, ... путем защиты файлов .htaccess от перезаписи и удаления. можно подробней ?

   
 
 автор: Loki   (10.04.2006 в 14:49)   письмо автору
 
   для: CrazyAngel   (10.04.2006 в 14:22)
 

Очень даже играет: никакие скрипты не будут исполняться, если файл не имеет соотвествующего расширения.

   
 
 автор: CrazyAngel   (10.04.2006 в 14:50)   письмо автору
 
   для: Loki   (10.04.2006 в 14:49)
 

А если include

   
 
 автор: Loki   (10.04.2006 в 15:15)   письмо автору
 
   для: CrazyAngel   (10.04.2006 в 14:50)
 

инклуд чего? картинки?

   
 
 автор: Trianon   (10.04.2006 в 15:21)   письмо автору
 
   для: CrazyAngel   (10.04.2006 в 14:22)
 

Подробнее.
Надо не забыть в каталоге, куда кладутся изображения, создать файл .htaccess и защитить его от перезаписи путем установки прав доступа 555. Иначе, если злоумышленник сможет создать этот файл сам, он пропишет в этом файле интерпретацию GIF/JPG модулем PHP.

   
 
 автор: Киналь   (10.04.2006 в 19:08)   письмо автору
 
   для: CrazyAngel   (10.04.2006 в 09:46)
 

Полагю, речь об XSS. Насколько я знаю, защититься от этого невозможно - на стороннем сервере размещается скрипт под именем avatar.jpg и указывается в качестве аватара. Каждый, зашедший на форум, грузит эту картинку, а с ней и скрипт. Скрипт, как минимум, собирает статистику посетителей.

   
 
 автор: Trianon   (10.04.2006 в 19:19)   письмо автору
 
   для: Киналь   (10.04.2006 в 19:08)
 

Каким образом? ему же кукисы не передаются.

   
 
 автор: Trianon   (10.04.2006 в 19:23)   письмо автору
 
   для: Киналь   (10.04.2006 в 19:08)
 

Кроме того, портал может не дать применить внешний URL для аватара, а заставить загрузить локальный.

   
 
 автор: CrazyAngel   (10.04.2006 в 19:45)   письмо автору
 
   для: Trianon   (10.04.2006 в 19:23)
 

А нельзя ли какими нибуть выражениями просто вычислить что та код и вырезать его или запретить доступ?

   
 
 автор: Trianon   (10.04.2006 в 20:32)   письмо автору
 
   для: CrazyAngel   (10.04.2006 в 19:45)
 

То, о чем говорим мы с Киналем - это не код. Это картинка, просто она качается со стороннего сайта.

   
 
 автор: CrazyAngel   (10.04.2006 в 20:49)   письмо автору
 
   для: Trianon   (10.04.2006 в 20:32)
 

Нет это я понял,
А вдруг форум файловый, а вдруг кто нибуть закачает туда, чтонибуть не хорошое

   
 
 автор: Киналь   (10.04.2006 в 21:09)   письмо автору
 
   для: Trianon   (10.04.2006 в 19:23)
 

>Кроме того, портал может не дать применить внешний URL для
>аватара, а заставить загрузить локальный.

Это-то конечно=) А статистика - ну там ip посетителей, еще чего-нибудь... Да и в любом случае грузить черт-те какой скрипт неприятно:)

//-----------------

Проверить, картинка ли это - насколько я знаю, невозможно; ну или сложно. Если даже делать контрольный запрос к этой картинке, то это можно вычислить хотя бы по юзер-агенту, или по другим характерным заголовкам. В этом случае скрипт переадресует на картинку, и все.

Если же речь о файлообменнике, то можно (и даже, наверное, нужно) проверять антивирусом, типа как на mail.ru. Правда, для этого нужен свой сервер или добрый хостер=)

   
 
 автор: Trianon   (10.04.2006 в 21:15)   письмо автору
 
   для: Киналь   (10.04.2006 в 21:09)
 

Можно в тот момент, когда пользователь прописывает URL к внешнему источнику аватара, загрузить его в GDLIB и сформировать локальную копию картинки. Можно даже периодически дергать этот URL запросом HEAD на предмет обработки обновлений аватара.
Но в принципе, это не тот вопрос. Это вопрос доверия к пользователям. Не лроверяешь - не давай цеплять картинки вообще. А аватары только из списка одобренных. А одобрение - за деньги :))

   
 
 автор: Киналь   (10.04.2006 в 21:31)   письмо автору
 
   для: Trianon   (10.04.2006 в 21:15)
 

>Можно в тот момент, когда пользователь прописывает URL к
>внешнему источнику аватара, загрузить его в GDLIB и
>сформировать локальную копию картинки. Можно даже
>периодически дергать этот URL запросом HEAD на предмет
>обработки обновлений аватара.

Так я и говорю - проверять. Но тогда нужно подделываться под браузер, иначе получим редирект на картинку вместо скрипта. но, опять же, на каждую хитрую гайку есть свой болт с левой резьбой=)

>Но в принципе, это не тот вопрос. Это вопрос доверия к
>пользователям.

Вот-вот! Сначала - социальная инженерия, а потом прочая=)

   
 
 автор: Trianon   (10.04.2006 в 21:51)   письмо автору
 
   для: Киналь   (10.04.2006 в 21:31)
 

>>Можно в тот момент, когда пользователь прописывает URL к
>>внешнему источнику аватара, загрузить его в GDLIB и
>>сформировать локальную копию картинки. Можно даже
>>периодически дергать этот URL запросом HEAD на предмет
>>обработки обновлений аватара.
>
>Так я и говорю - проверять.
Нет, не для проверки, а чтоб сохранить локальной копией (именно копией изображения, не файла!) и затем подставлять в (img src=) на место аватара.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования