2017-05-04 45 views
1

可以说,我从用户得到“名”和他进入<script>alert("you got xss!");</script>检查输入,并将其转换为合适的类型,以防止XSS

但在服务器上我转换: name= name_from_frontend.toString();保存它之前分贝。
同样,我检查了int using parseInt()
float using parseFloat()
boolean using typeof(variable_name)等等。

是否还需要转义<,&OWASP提及的其他字符以防止XSS?

回答

0

Enapupe是大致正确,但它说You probably need to strip evil tags such as script, etc.他的答案的一部分 - 还不是很清楚。

正确的语句会是 - 您绝对必须使用OWASP guidelines删除XSS,转换为字符串或不转换为字符串将不会产生影响

0

对字符串类型调用toString()没有帮助。你可能需要剥去标签邪如script

大多数服务器端语言如Python(https://pypi.python.org/pypi/bleach),PHP(strip_tags())等有函数库集中清理邪恶标记,所以你可以放心地使用该输入后来。

如果你想要一个JS解决方案,你应该检查https://www.npmjs.com/package/sanitize-html,这是做的工作,但打算用于节点。例如:

clean = sanitizeHtml(dirty, { 
    allowedTags: [ 'b', 'i', 'em', 'strong', 'a' ], 
    allowedAttributes: { 
    'a': [ 'href' ] 
    } 
}); 
+0

如何将''“'能够在html(它的一个字符串)中生成xss? – vjjj

+0

一切都取决于你打算如何处理这些数据..在开始时,通过使用服务器端语言来“打印”用户插入的html是一种常见的做法。 – enapupe

+0

我将在客户端模板中使用用户数据,做eval()或插值。我用胡子 - > {{和{{= – vjjj