我目前正在开发一个GWT 1.7.1应用程序,该应用程序处理大量持久的用户生成数据,因此存在恶意XSS的风险。我正在采取的一个步骤是使用org.apache.commons.lang.StringEscapeUtils.escapeHtml()服务器端(是的我很清楚这不会阻止所有可能的XSS攻击,如here和here所述。
这种方法导致客户端问题,因为看起来GWT正在执行它自己的客户端转义(例如,服务器返回字符串“ Alice& amp; Bob Inc。”和“ Alice& amp; amp; Bob Inc。”正被呈现给不正确的DOM。这肯定发生在客户端,因为来自服务器的http响应包含正确编码的数据。我一直在浏览GWT的文档,但没有找到任何对此功能的引用。 有人知道某种禁用此行为的方法吗?
答案 0 :(得分:1)
如何添加服务器返回页面的值?你能加入文字吗?如果您确定String是安全的,您可以将其添加为HTML(通常有HTML选项)或HTML等特定小部件。
btw通常最好不要从服务器返回HTML编码值,因为您不知道如何使用它们。我使用的规则是将值保持为干净的格式,直到最后一分钟(添加到文档等)。