【问题标题】:How to safely redirect to the referrer page?如何安全地重定向到引荐页面?
【发布时间】:2014-06-13 06:38:10
【问题描述】:

我正在使用以下代码重定向到我的控制器中的引荐来源网址:

return Redirect(this.HttpContext.Request.UrlReferrer.AbsolutePath);

在使用应用程序安全工具进行扫描时,它指出上述代码会导致网络钓鱼攻击。

Web 应用程序接受用户控制的输入,该输入指定指向外部站点的链接,并使用该链接生成重定向。这会导致网络钓鱼攻击。

有什么方法可以安全地重定向到推荐人?

【问题讨论】:

  • 出于兴趣,您为什么要将用户重定向回他们来自的页面?

标签: c# asp.net asp.net-mvc http redirect


【解决方案1】:

这听起来像是一个通用错误,在您的情况下可能是无害的。 app sec 工具并没有意识到您正在将人们送回他们来自的确切页面,而是看到您执行以下操作的潜力:

return Redirect(
    is_trusted_site( this.HttpContext.Request.UrlReferrer.AbsolutePath )
    ? sensitiveURL
    : otherURL
);

如果重定向的 URL 根据UrlReferrer 的内容而改变,那么您可能会成为referrer spoofing 的牺牲品。

同样,如果要修复“错误”,或许可以使用 JavaScript 的history.back()

【讨论】:

    【解决方案2】:

    我认为这没有任何问题,因为您真正想要的是重定向到在整个 Internet 上放置指向您网站的链接的任何人。您无法控制“引荐来源”如何在 HTTP 标头中结束。它可能是合法的,也可能是伪造的。如果你没问题,我认为没有问题。

    请注意,有人可以使用您的网站重定向到任何内容,这会导致可能的攻击。即,发送一封实际链接到您的网站的电子邮件,但在查询参数中指定了一个钓鱼网站。

    你打算用这个做什么?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-03-17
      • 2015-01-16
      • 2016-06-05
      • 2014-01-23
      • 1970-01-01
      • 1970-01-01
      • 2021-04-28
      相关资源
      最近更新 更多