- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
OWASP 的优秀人员强调,您必须对 HTML 文档中要放入不受信任数据的部分(正文、属性、JavaScript、CSS 或 URL)使用转义语法。请参阅OWASP - XSS 。他们的 API(由 ESAPI 团队开发)随后满足了这一需求,为每个上下文提供了编码器:
ESAPI.encoder().encodeForHTML(“输入”);
ESAPI.encoder().encodeForHTMLAttribute(“输入”);
ESAPI.encoder().encodeForJavaScript(“输入”);
ESAPI.encoder().encodeForCSS(“输入”);
ESAPI.encoder().encodeForURL(“输入”);
随后,这使得开发人员能够满足 DOM-based XSS .
所以我的问题是 GWT 的 safehtml 包如何满足这个需求,还是仅仅关注 HTML 编码?
最佳答案
SafeHtmlTemplates
会这样做(但仅限客户端,因为它依赖于 GWT 生成器)。它将使用“tag soup”解析器解析 HTML 片段,该解析器将推断上下文,如果参数不能在此上下文中使用,则记录警告或抛出异常(例如,它阻止在脚本上下文中使用所有占位符) 。虽然这仍然在变化( SafeUri
仍在审查中, SafeStyles
仍然受到严格限制),但它会在适当的时候出现(我认为应该在 GWT 2.4 中)。
否则:
SafeHtmlUtils
的将逃脱所有 <
, >
, &
, '
和"
因此结果对于“HTML”和“HTML 属性”上下文是安全的SafeHtmlBuilder
的各种追加方法只会调用 SafeHtmlUtils
在引擎盖下UriUtils
提供清理不安全 URI 的工具(如果您正在构建 HTML 字符串,则之后仍需要 SafeHtmlUtils
传递或等效项 - 与直接使用图像源或 anchor 的 href 的值相比)。SafeStyles
本身没有提供任何具体内容,但是 SafeHtmlTemplates
只允许它出现在 CSS 上下文的开头,并且如果您尝试在 CSS 上下文中放入其他内容,则会记录一条警告。 SafeStylesBuilder
预计将通过类型安全方法进行扩展,以帮助构建格式良好 CSS。SafeUri
上界面,类似SafeStyles
但在 URL 上下文中。在适当的时候,SafeHtmlTemplates
只允许 SafeUri
或String
作为 URL 属性的完整值,传递 String
通过UriUtils
以确保其安全。简而言之,我认为您问题的答案是:是的,GWT 的 safehtml 包可以满足此要求;但您可能必须始终使用最新版本的 GWT(至少在来年)才能保证安全。
关于security - GWT SafeHTML、XSS 和最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6177329/
假设您有以下 MyPanel.ui.xml: Some content ...
OWASP 的优秀人员强调,您必须对 HTML 文档中要放入不受信任数据的部分(正文、属性、JavaScript、CSS 或 URL)使用转义语法。请参阅OWASP - XSS 。他们的 API(由
如何使 @SafeHtml 成为字符串类型的默认 validator ?这是愚蠢的吗? Hibernate Validator 有一个名为 @SafeHtml 的 validator ,它可以防止 H
我有一个 div,id 是“carID”。 我需要做这样的事情: magic(){ //Safe Html is imported previously in the component do
您将如何结合链接使用 SafeHtml? 场景:我们的用户可以输入未格式化的文本,其中可能包含链接,例如I like&love http://www.stackoverflow.com .我们希望在
我有一个从另一个 API(反编译类)获取的 dto,其中一个字符串字段被标记为 SafeHtml 以防止用户注入(inject) HTML 脚本。 @NotNull @SafeHtml( wh
我需要在我的文本字段中使用 XSS 过滤器,但我需要允许某些 html 标记用于文本格式(粗体、斜体等),并且我还需要允许 url 链接,例如: then with links! 所以在我的实体类中我
我有一个基于 Java 的后端,我在其中使用 Hibernate 进行一些更具体的 bean 验证,即:@SafeHtml。它可以很好地满足我 99% 的需求,但是,我有一个部分允许用户输入基本的 H
如何将我的 Html 更改为 SafeHtml Html htmlText = new Html(); htmlText.setText(result.getText()); 我正在将简历保存在我的
我收到 typescript 错误 切换到 Ivy 编译器后: [Step 4/5] src/app/app.component.html(1,26): Type 'SafeHtml' is not
我在一个新项目中使用 GWT 2.5,但遇到了一个小障碍。GWT 的早期版本对 HTMLPanel 禁用了 SafeHTML,这意味着如果我在 HTMLPanel 中放入大块文本,它会像普通 HTML
正如 JavaDocs 中所述,它将在未来版本中删除。是否有任何替代库可以通过注释类似地工作? 最佳答案 我们首先解释一下弃用的原因:由于这一限制,我们最近遇到了安全问题 (CVE)。这是由于我们实现
对于 GWT 项目,如果您将 pom 配置为生成 I18N 消息包,则生成的接口(interface)都返回字符串。 我想知道是否有办法让消息包接口(interface)生成 s.t.部分或全部方法返
我有一个允许用户放置图像链接的文本框(例如:http://abc.test.gif)和另一个允许用户放置替代文本的文本框(例如:“这是 test.gif”)和一个提交按钮。 当用户点击提交按钮时,程序
我有一个基于 Java 的后端,我在其中使用 Hibernate 进行一些更具体的 bean 验证,即:@SafeHtml。它可以很好地满足我 99% 的需求,但是我有一个部分允许用户输入基本 HTM
我是一名优秀的程序员,十分优秀!