1

谷歌的网站管理员博客写了一些关于如何防止滥用开放重定向保护的解决方案,我对那里的一些解决方案感到困惑很长一段时间,我尝试谷歌搜索但没有发现任何结果。

  1. 更改重定向代码以检查引荐来源网址
  2. 考虑使用白名单
  3. 考虑签署您的重定向
  4. 特别禁止异地重定向

我对解决方案的猜测:

  1. 用于%{HTTP­_RE­FERER}检查 url 请求
  2. 在 url 请求中使用一些正则表达式来检查 url 请求中的站点是否在正则表达式的范围内
  3. 想不出任何
  4. 想不出任何

请让我知道我的猜测是否正确,如果不正确,请告诉我如何在 PHP 或 Apache 中正确执行。谢谢!

4

2 回答 2

1
  1. 正确,但这不是一种可靠的方法。可以操纵 HTTP Referrer。
  2. 定义允许重定向到的 URL 列表,与此列表进行比较并取消重定向到任何其他 URL。
  3. 添加重定向的加盐哈希作为重定向参数。在重定向之前,请使用请求参数检查该哈希。如果计算的哈希值与请求参数中的哈希值相同,则可能没有进行请求操作 -> 可以执行重定向。这可以防止执行任何重定向,除非有人猜到您的哈希生成算法(这就是为什么您必须使用密钥对其进行加盐)。
  4. 取消所有将导致任何不包含您的网站作为主机的 URL 的重定向。正如您在 2 中所猜测的那样,这可以使用正则表达式来完成。
于 2012-05-23T08:06:33.313 回答
0

当您的应用程序根据用户提供的内容(即通过 POST 或 GET)进行盲重定向时,打开重定向成为可能。开放重定向最常被网络钓鱼攻击利用。

为了防止打开重定向,如果 URL 来自用户输入,您应该验证并验证您重定向到的任何 URL。应根据白名单进行验证。

于 2012-05-23T07:55:00.827 回答