URL в кодировке + (плюс) оценивается как пробел - PullRequest
1 голос
/ 23 марта 2020

Я пытаюсь передать следующую строку в качестве параметра 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 и оценивается в +

...