可能是一个新手问题(最有可能),但根据官方开发人员文档,GWT 的 HTML 小部件不是 XSS 安全的,在嵌入自定义 HTML/脚本文本时必须小心谨慎。
所以我想我的问题是,为什么会这样:
HTML testLabel = new HTML("dada<script type='text/javascript'>document.write('<b>Hello World</b>');</script>");
不显示 JavaScript 弹出窗口?如果不知何故,GWT 的 HTML 小部件确实可以防止 XSS 攻击,那么在什么类型的情况下它不能(这样我就可以知道会发生什么)?
最佳答案
GWT 文档包含很少 articles关于安全性(包括使用 SafeHtml 处理 XSS)。
您的示例不起作用,因为通过 innerHTML
定义的脚本不会在 Chrome/Firefox 中执行(我认为 IE 使用 defer
属性有一些解决方法) 。
但是您不应该依赖此浏览器限制。因此最好使用 SafeHtml 并始终验证用户的输入。
关于html - GWT HTML Widget XSS 安全,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10139491/