我有一个页面,当加载时使用@Html.AntiForgeryToken()生成一个防伪造令牌。这种情况发生在布局文件中。该页面可以打开几个弹出式窗口中的iframe。此iframe使用@Html.AntiForgeryToken()生成自己的防伪令牌。
在可以打开弹出窗口的页面上,用户可以注销。注销请求包括在此页面加载时生成的防伪造令牌。
鉴于我是这样做的:
注销成功。为什么会这样呢?新的令牌不会取代服务器上的旧令牌吗?或者我验证的防伪造令牌是否作为cookie存储在浏览器中,以便当我通过注销请求传递反伪造令牌值时,浏览器也会传递与我比较的匹配的防伪造令牌cookie?
我正在学习ASP.NET 4.5.2和MVC 5.2.3。
发布于 2018-06-27 05:02:46
好像被保存在饼干里了。 --这不是.NET Core的文章,尽管它的工作方式可能是相同的。
使用同步器令牌模式的一个变体来抵御ASP.NET攻击。同步器令牌模式的一般形式是使用每个HTTP (除了身份验证令牌)向服务器提交两个反XSRF令牌:一个令牌作为cookie,另一个作为表单值。由ASP.NET运行时生成的令牌值不是攻击者确定的或可预测的。当令牌被提交时,只有当两个令牌通过比较检查时,服务器才会允许请求继续进行。
https://stackoverflow.com/questions/51043485
复制相似问题