通过几个线程,我可以看到在用户未经身份验证的站点区域使用 MVC 防伪令牌是过度杀伤力。
我有一个应用程序从site1、site2、site3 等向mysite.com 发布一些信息。每个站点都有一个唯一标识符,该标识符通过异步Javascript POST 在POST 请求中发送。在 site1-3 上执行的 Javascript 在 mysite.com 上生成,然后返回到填充了一些 Javascript 变量的站点。
所以生命周期如下:
- site1 上的页面有对 mysite.com 的 Javascript 引用。
- 该链接引用指向生成 Javascript 以返回到 site1 的控制器路由。
- 返回的 JS 末尾包含一个 POST 请求,该请求返回到 mysite.com,其中包含 URL、浏览器等,以及 site1 上页面访问者的详细信息。
我可以从 JS POST 请求的接受控制器中很好地读取 POST 参数,但是,我想知道是否将防伪令牌添加到参数列表中是否有任何意义。
如果是这样,我将不得不在初始请求中生成它,并将其作为返回给 site1 的 JS 中的 JS 变量传回,然后在第二个请求中将其与表单 POST 一起传回。
由于只有在找到有效帐户时才会在 mysite.com 上进行任何处理,因此进行此操作有什么意义吗?
如果是这样,我将如何在控制器级别生成防伪令牌?