В Chrome я получаю сообщение об ошибке Refused to execute a JavaScript script. Source code of script found within request.
после публикации данных, содержащих имя домена (также обратите внимание на отсутствие javascript на обеих страницах).
badpage1.html :
<form action="/badpage2.html" method="post">
<input type="hidden" name="name" value="href=%22http://www.w3.org/%22"/>
<input type="submit" name="submit"/>
</form>
badpage2.html :
<!DOCTYPE html>
<html>
<head>
<base href="http://www.w3.org/"/>
</head>
<body>
<img src="Icons/w3c_home" alt="">
</body>
</html>
Если перейти непосредственно к badpage2.html
, изображение будет отображаться, но если перейти к нему черезbadpage1.html
, изображение не будет отображаться (базовый тег не работает).
Это ошибка в обнаружении Chrome XSS?И если это не так, как бы я обойти это?Кажется глупым кодировать опубликованные данные только для того, чтобы обойти этот фильтр.
РЕДАКТИРОВАТЬ:
В моем случае отправленное значение сообщения должно обновить часть содержимого страницы.Проблема возникает, если оно содержит доменное имя, которое используется в <base>
(как в этом примере), запускает обнаружение XSS, которое отключает тег <base>
.