gpt4 book ai didi

image - 对于 SafeHtml,我们是否需要清理 标签中的 "link",GWT?

转载 作者:行者123 更新时间:2023-12-01 02:26:02 26 4
gpt4 key购买 nike

我有一个允许用户放置图像链接的文本框(例如:http://abc.test.gif)和另一个允许用户放置替代文本的文本框(例如:“这是 test.gif”)和一个提交按钮。

当用户点击提交按钮时,程序会生成<img src="http://abc.test.gif" alt="This is test.gif">此字符串并将其存储到数据库中以备后用。

我的问题是:我需要清理图像链接 "http://abc.test.gif" & alt 标签中的文字 "This is test.gif"
例如,我是否需要使用 UriUtils.isSafeUri("http://abc.test.gif"); & SafeHtmlUtils.fromString("This is test.gif"

最佳答案

您故意允许用户输入他想要的任何内容,这些内容将进入 srcalt img 的属性标签。这确实对任何类型的 XSS 攻击开放。看看 here对于一些例子,在最近的浏览器仍然可以工作。

此外,您将字符串存储在您的数据库中以供以后使用(猜测),因此攻击可能会在稍后发生,当您将使用此类字符串在 DOM 中创建节点时,会产生更多不可预测的结果。

一种解决方案可能是仅在数据库中存储 URL 和替代字符串(如果有适当的输入验证),并生成安全的 img在您需要时使用一个简单的模板(或以编程方式使用 SafeHtmlBuilder )。

public interface Template extends SafeHtmlTemplates {
@Template("<img src=\"{0}\" alt=\"{1}\"/>")
SafeHtml img(SafeUri uri, SafeHtml alternativeText);
}

像这样使用:
template.img(
UriUtils.fromString(yourValidatedDbUrl),
SafeHtmlUtils.fromString(yourValidatedAlternativeText));

这样你:
  • 验证用户输入;
  • 仅存储经过验证的值(原样);
  • 仅在真正需要时以安全的方式生成 img 片段。
  • 关于image - 对于 SafeHtml,我们是否需要清理 <img src=link> 标签中的 "link",GWT?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16392625/

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