我读取了这个主题的许多文章,包括 Owasp页面谷歌博客文章关于开放重定向...
我还在
在堆栈overflow 中的开放重定向,但它是一个不同的一个

我知道为什么我不应该重定向...这对我来说是完全的感觉。

但我真正不明白的是:在正常的世代<a href链接中重定向和将其置于何处,究竟在哪里?
也许一些用户正在寻找状态栏,但我认为大多数人并不是真正展望状态栏,当他们klick一个链接时。
这真的是唯一的原因吗? 喜欢这个文章他们写道:

<a href="http://bank.example.com/redirect?url=http://attacker.example.net">Click here to log in</a>
.

用户可能假设链接是安全的,因为URL从他们的信任银行开始Bank.example.com开始。但是,用户将重定向到攻击者的网站(攻击者.Example.net),攻击者可能已经使攻击者出现与bank.example.com非常相似。然后,用户可以在攻击者的网页中不知不觉地输入凭据并妥协他们的银行帐户。 Java Servlet不应将用户重定向到URL,而无需验证重定向地址是可信站点。

所以,如果您有类似留言簿的东西,用户可以将链接放在主页上,那么唯一的区别就是链接未重定向,但它仍然进入邪恶的网页。

我看到这个问题是对吗?

有帮助吗?

解决方案

从我的理解中,它不是重定向是问题。这里的主要问题允许重定向(其中目标由用户可能控制的目标),其中包含绝对URL。

URL是绝对的事实(这意味着它开始生成的),意味着您是未意识的允许跨域重定向。这与Classic XSS漏洞非常类似,可以反映JavaScript以制作跨域调用(并泄漏您的域名的信息)。

所以,正如我理解的那样,修复大部分问题的方法是确保使用重定向(在服务器上)是相对于root完成的。然后没有办法对用户控制的查询字符串值GO在其他地方。

这是否回答了您的问题或只是创造更多?

其他提示

主要问题是,它可以让攻击者使URL似乎是值得信赖的,因为它实际上是网站的URL受害者信托,我。e。 Bankample.com

重定向目标不需要像该示例中那样明显。实际上,攻击者可能会使用进一步的技术来欺骗用户,甚至可能甚至是Web应用程序,甚至需要特殊编码,参数污染,以及欺骗合法URL的其他技巧。

因此,即使受害者是如此安全意识到在单击链接或请求其资源之前检查URL,它们可以验证所有这些都可以指向值得信赖的网站 Bank.example.com 。而且那么一个人经常足够。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top