GWT HTML Widget XSS安全性

时间:2012-04-13 10:54:13

标签: html security gwt xss

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

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

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

不显示javascript弹出窗口?如果不知何故,GWT的HTML小部件确实可以防止XSS攻击,那么在什么类型的情况下它不会(所以我可以知道会发生什么)?

2 个答案:

答案 0 :(得分:2)

我并不特别了解这个小部件,但一般来说,值得知道XSS向量来自许多风格。只有一小部分实际使用script标记。

一个非常重要的因素是它们与位置有关。例如,在任何标记之外是xss-safe的字符串在标记的属性值内或javascript块内的分隔字符串内可能不安全。

它们也可以依赖于浏览器,因为许多人利用文档解析模型中的“错误”。

要了解可能被滥用以产生恶意javascript注入的各种不同向量,请参阅这两个cheat sheets

我还建议您阅读prevention cheat sheet at owasp

答案 1 :(得分:2)

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

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

但是你不应该依赖这个浏览器限制。所以最好使用SafeHtml并始终验证来自用户的输入。