让我说我得到&#34;姓名&#34;来自用户,他输入<script>alert("you got xss!");</script>
但在我转换的服务器上:
在将其保存到db之前name= name_from_frontend.toString();
。
同样,我检查int using parseInt()
float using parseFloat()
boolean using typeof(variable_name)
等等。
是否仍需要转发<
,&
以及OWASP提及的其他字符以阻止XSS?
答案 0 :(得分:0)
对字符串类型调用toString()
没有帮助。您可能需要删除script
等恶意标记
大多数服务器端语言(如python(https://pypi.python.org/pypi/bleach),php(strip_tags()
)等都具有专注于清理恶意标记的函数库,因此您可以在以后安全地使用该输入。
如果你想要一个JS解决方案,你应该检查https://www.npmjs.com/package/sanitize-html,它完成了这项工作但是打算用于Node。例如:
clean = sanitizeHtml(dirty, {
allowedTags: [ 'b', 'i', 'em', 'strong', 'a' ],
allowedAttributes: {
'a': [ 'href' ]
}
});
答案 1 :(得分:0)
Enapupe大致正确,但他的答案部分You probably need to strip evil tags such as script, etc.
- 并不十分清楚。
正确的陈述是 - 你绝对必须使用OWASP guidelines删除XSS,转换为字符串或不转换为字符串不会产生影响!