我目前正在开发一个GWT 1.7.1应用程序,该应用程序处理大量持久的用户生成数据,因此存在恶意XSS的风险。我采取的阻止这一步骤的步骤之一是使用 org.apache.commons.lang.StringEscapeUtils.escapeHtml()服务器端(是的我很清楚这不会阻止所提到的所有可能的XSS攻击< a href =“https://stackoverflow.com/questions/53728/will-html-encoding-prevent-all-kinds-of-xss-attacks/70222#70222”>这里和这里)。

这种方法导致客户端问题,因为看起来GWT正在执行它自己的客户端转义(例如,服务器返回字符串“ Alice&amp; amp; Bob Inc。”和“ Alice&amp; amp; amp; Bob Inc。”正在呈现给不正确的DOM。这肯定发生在客户端,因为来自服务器的http响应包含正确编码的数据。我一直在浏览GWT的文档,但没有找到任何对此功能的引用。 有人知道某种禁用此行为的方法吗?

有帮助吗?

解决方案

如何添加服务器返回页面的值?你能加入文字吗?如果您确定String是安全的,您可以将其添加为HTML(通常有HTML选项)或HTML等特定小部件。

btw通常最好不要从服务器返回HTML编码值,因为您不知道如何使用它们。我使用的规则是将值保持为干净的格式,直到最后一分钟(添加到文档等)。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top