gpt4 book ai didi

java - GWT 安全 HTML 框架 : When to use, 为什么?

转载 作者:太空狗 更新时间:2023-10-29 14:42:42 24 4
gpt4 key购买 nike

在阅读 JavaDocs 和各种 GWT 文章时,我偶尔会遇到以下 Safe* 类:

  • SafeHtml
  • SafeHtmlBuilder

看起来 SafeHtml 在创建新的 WidgetComposite 时以某种方式被使用,并有助于确保 Widget/Composite 不会在客户端执行任何脚本。是这样吗,还是我离题了?有人可以提供在实际中正确使用 SafeHtml 的代码示例吗?

如果是这样,那么 SafeHtmlBuilder 的意义何在?您是否在 Widget 中使用它以某种方式“构建”安全的 HTML?

最佳答案

最简单的查看方式SafeHtml作为 String任何 HTML 标记都已被适本地转义。这可以防止跨站点脚本 (XSS) 攻击,因为它可以确保,例如,如果有人以 <SCRIPT>alert('Fail')</SCRIPT> 的形式输入他们的名字这是呈现页面而不是运行 JavaScript 时显示的文本。

所以不要有这样的东西:

String name = getValueOfName();
HTML widget = new HTML(name);

你应该使用:

String name = getValueOfName();
HTML widget = new HTML(SafeHtmlUtils.fromString(name));

SafeHtmlBuilder就像一个 StringBuilder除了它会自动转义您添加的字符串中的 HTML 标记。所以扩展上面的例子:

String name = getValueOfName();
SafeHtmlBuilder shb = new SafeHtmlBuilder();
shb.appendEscaped("Name: ").appendEscaped(name);
HTML widget = new HTML(shb.toSafeHtml());

很好guide to SafeHtml in the GWT documentation值得一读。

关于java - GWT 安全 HTML 框架 : When to use, 为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13027460/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com