检查输入并将其转换为适当的类型以防止XSS

时间:2017-05-04 19:49:02

标签: javascript html security frontend xss

让我说我得到&#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?

2 个答案:

答案 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,转换为字符串或不转换为字符串不会产生影响