Нужно ли проявлять осторожность при установке атрибута src изображения, где путь src указан пользователем? - PullRequest
1 голос
/ 23 ноября 2010

Я создаю страницу, на которой пользователь будет указывать URL-адрес изображения.Этот URL-адрес будет сохранен в БД, а затем будет восстановлен для отображения изображения.Пока это хорошо, если пользователь не пытается быть озорным.

Но теперь, исходя из http://ha.ckers.org/xss.html, пользователь также может указать URL, который на самом деле является скриптом.

<IMG SRC=javascript:alert('XSS')> 

Я пробовал это на странице, но это не принесло никакого вреда.[оповещение не отображается] Итак, смысл в том, действительно ли мне нужно заботиться о том, что указывает пользователь?Если да, то какие случаи / сценарии мне нужно рассмотреть, и как это сделать?

Ответы [ 3 ]

5 голосов
/ 23 ноября 2010

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

<img alt='' src='' />alert('xss');<!--'-->

Кроме того, пользовательский ввод должен обрабатываться по-разному при использовании в разных местах. Например. Url-кодирование, Html-кодирование, Javascript-кодирование.

В общем, не доверяйте вводу пользователя!

1 голос
/ 23 ноября 2010

Перед сохранением в базе данных убедитесь, что это:

  1. Действительный URL (каждый язык на стороне сервера имеет свои собственные методы)
  2. Допустимое изображение (с использованием какого-то XMLHTTP / WebRequest на стороне сервера и синтаксический анализ содержимого)

Если у вас есть ASP.NET, шаг № 2 становится простым вопросом создания нового растрового изображения с использованием потока WebResponse и проверки его успешности и допустимости растрового изображения.

0 голосов
/ 23 ноября 2010

Также он может предоставить значение типа myevilscript.php, где он делает некоторые php-вещи Так что на самом деле вы действительно не должны этого делать:)

...