这里没有看到这种技术:
https://www.owasp.org/index.php/XSS_(Cross_Site_Scripting)_Prevention_Cheat_Sheet
我希望能更好地理解原因。
我有以下功能(礼貌https://stackoverflow.com/a/287173/2144912):
comment = comment.replace(/&(amp|quot|#x27|gt|lt);/g, function (c) {
return {
'&': '&',
'"': '"',
''': "'",
'>': '> ',
'<': '< ',
}[c]
})
用于显示已使用Underscore的_.escape()
函数进行HTML转义的用户输入评论,并且:
允许使用通常转义的特殊字符(&amp;,&lt;,&gt;,',“)
虽然(希望)阻止了XSS
请注意>
和<
如何返回带有额外空格的值:'< '
和'> '
。
在测试中,如果用户输入:
<h1>here is some html</h1>
输出将是一个字符串(而不是HTML):
< h1> test< /h1>
这是一种有效的XSS预防技术吗?