终生和多次使用AntiForgeryToken?

时间:2013-08-12 10:20:10

标签: asp.net asp.net-mvc angularjs xss

我正在尝试为一个角度应用程序的ajax请求实现antiforgerytokens。

抗伪造品是否附有生命?如果我在没有触摸它的情况下在网络浏览器中打开应用程序很长一段时间,比如说一个月。由于陈旧的令牌,ajax请求会失败吗?

令牌可以重复用于多次通话吗?我可以在页面中的某处保留一个令牌并为所有ajax调用检索它吗?

2 个答案:

答案 0 :(得分:1)

确实API应该由第三方使用,但是有关AFT的单页界面是什么?

我担心他们仍然需要AFT以防止CSRF攻击。这是在Ajax requests中使用它们的好方法。

每个会话生成防伪签名,并保留在会话数据中,直到它过期。对于新会话,将生成新令牌。是的,单个令牌可以在同一个会话中多次重复使用。

请检查我添加的链接,有关于如何获取Ajax请求令牌的示例。

答案 1 :(得分:0)

由于过时的令牌,ajax请求会失败吗?的

令牌可以重复用于多次通话吗?

然而,问自己的更好的问题是为什么你首先使用防伪令牌与AJAX。如果您正在使用AJAX,那么即使您没有将其正式化(只是用于AJAX /其他无头通信的动作/控制器集合),您也可以使用API​​。防伪令牌不能很好地与API配合使用,因为1)API通常允许第三方访问,2)即使他们,其中&#39更好的方法来保护他们。

如果您想确保只有您的网站可以访问您的" API",请实施HTTP身份验证或其他一些方案来验证您对" API"的请求。这就是你允许长时间运行的会话不会失败的方法。