Я пытаюсь передать следующую строку в качестве параметра GET сценарию PHP:
<script src="http://mypage.net/test.php?cb=
var url = 'test'+document.body.outerHTML;
//"></script>
Кодированный URL, эта строка становится:
%3Cscript%20src%3D%22http%3A%2F%2Fmypage.net%2Ftest.php%3Fcb%3D%0Avar%20url%20%3D%20%27test%27%2Bdocument.body%3B%0A%2F%2F%22%3E%3C%2Fscript%3E%0A
Chrome и Firefox оба оценивают закодированную строку после передачи ей параметра get в
var url = 'test' document.body;
, заменяя %2B
пробелом, следовательно, делая код синтаксически ложным. %252B
работает, хотя, который декодируется до %2B
и оценивается в +