2012-04-13 134 views
2

可能是一个不好的问题(很有可能),但根据官方开发者文档,GWT的HTML小部件不是XSS安全的,并且在嵌入自定义HTML /脚本文本时必须谨慎。GWT HTML Widget XSS安全

,所以我想我的问题是,为什么这样的:

HTML testLabel = new HTML("dada<script type='text/javascript'>document.write('<b>Hello World</b>');</script>"); 

没有表现出JavaScript弹出?如果以某种方式,GWT的HTML小部件确实能够抵御XSS攻击,那么在什么情况下它不会(所以我可以知道会发生什么)?

+0

看到类似的帖子在这里:[SafeHTml](http://stackoverflow.com/questions/6177329/gwt-safehtml-xss-best-practices) – Shehzad 2012-04-13 11:21:24

回答

2

GWT文档包含几个articles关于安全性(包括使用SafeHtml处理XSS)。

您的示例不起作用,因为通过innerHTML定义的脚本未在Chrome/Firefox中执行(我认为对于使用defer属性的IE有一些解决方法)。

但是,您不应该依赖此浏览器限制。因此,最好使用SafeHtml并始终验证来自用户的输入。

+0

完美,谢谢。 – user1021138 2012-04-13 12:55:02

2

我不太了解这个小部件,但总的来说,值得一提的是,XSS载体在许多口味。实际上只有一小部分使用script标签。

一个非常重要的因素是它们是位置依赖的。例如,任何标签外的xss-safe字符串,在标签的属性值内或在JavaScript块内的分隔字符串内可能都不安全。

它们也可能依赖于浏览器,因为许多漏洞都是在文档分析模型中使用“错误”。

要获得的各种不同的载体,可以被滥用,产生恶意的JavaScript注入感,请看到这两个cheatsheets

我也建议你阅读prevention cheat sheet at owasp

+0

非常感谢你,非常有用的语言不可知的资源! – user1021138 2012-04-13 11:26:18