假设我有一个 ASP.Net MVC 站点。如何锁定控制器方法(可能在操作上使用属性),以便 HTTP_REFERER 必须指向我的站点?
扩大:
我的控制器上有许多标记为 [Authorize] 的 JSON 操作,以防止未经授权的*用户进入。
有人鬼鬼祟祟地构建了一个攻击者网页并将其通过电子邮件发送给登录到我网站的用户。该页面包含一个从我的 JSON 控制器操作中获取的脚本。这会导致用户的浏览器向我的授权控制器方法发送登录的 cookie,将该用户的数据返回到攻击者的网页,然后他们可以读取并传递到其他地方。
如果我可以锁定这些请求,以便 HTTP_REFERER 必须指向我的站点,那么请求 JSON 的跨站点攻击将被阻止。最简单的方法是什么?
请注意,我显然不想锁定所有请求,JSON、授权或否 - 人们仍然需要能够链接到该站点。但是,除了我们网站上的页面之外,任何地方都不能访问授权的 JSON 请求。
*是的,我编造了这个词。