【发布时间】:2013-12-30 20:52:45
【问题描述】:
我不认为我希望做的事情是可能的。我将描述这个想法。
用户请求foo.com 并获得一个带有脚本的html 页面。该脚本向 bar.com 发出 CORS 请求。 bar.com 的服务器将对/ 的访问限制为真正来自 foo.com 提供的脚本的请求。有没有一种方法可以让服务器安全地推断出请求确实来自 foo.com 上的脚本?
Referer 和 Origin 标头包含我想使用的信息。但是,显然这些很容易伪造。
bar.com 可以使用请求的可信方面来根据请求的来源更改其行为吗?
假设我可以控制 foo.com 上的脚本和 bar.com 上的服务器。有什么方法可以在脚本中插入无法被模仿脚本的攻击者重放/伪造的东西?假设 foo.com 是公开的,攻击者可以访问脚本。
任何想法或讨论将不胜感激。
【问题讨论】:
-
如何轻易伪造 Origin 或 Referer 标头,至少在浏览器中如此?这可能曾经是真的,但我相信现在不是真的(至少对于由浏览器控制的 Origin 而言)。
-
@monsur 我想防止攻击者使用任何工具伪造请求。