关于Ajax刷新 AntiForgeryToken 实际上只是获取一个新的token旧的token还是可以用来伪造的问题。请大神来帮忙解答

Jesse的开发记事本 2018-10-18 10:14:33
关于 AntiForgeryToken调用方法System.Web.Helpers.AntiForgery.GetHtml()刷新token值后实际上只是新生成一个token 值,旧的token还是可以使用的问题吗?

如果旧的可以使用的那就可以通过伪造工具进行伪造攻击不停的提交重复的数据。
希望大家能帮帮忙解决~谢谢了
...全文
482 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
xuzuning 2018-10-19
  • 打赏
  • 举报
回复
把当前的token保存到文本中 是什么意思?
token 是临时生成,临时发放的,至多存于 session 中
使用 token 的目的是为了多一条验证来源,不能与原有的验证走同一条道
  • 打赏
  • 举报
回复
引用 2 楼 xuzuning 的回复:
如果是 获取新的token旧的token并不会失效
那么只能说明你的服务端根本就无视 token,或是说 token 纯粹是个自欺欺人的摆设

token 不可伪造,只可拦截。因为 token 实际是由包括客户端唯一信息产生的识别串
当然,如果你的服务端不是这样做的,就另当别论了


就是这么个道理。System.Web.Helpers.AntiForgery.GetHtml()这是mvc自带的token验证机制。我想你所说的应该是自己所写的一套token验证机制必须有的特性。
但是我现在使用的mvc自带的token验证过滤特性。有点不明白我把当前的token保存到文本中,为什么会刷新页面后,将旧的token值放入新的页面请求中一样可以用。这点我完全不能理解为什么,虽然可能存在一个页面多个不同表单区域的token。但是我却看不到让旧的token失效的好的方法。
xuzuning 2018-10-18
  • 打赏
  • 举报
回复
如果是 获取新的token旧的token并不会失效
那么只能说明你的服务端根本就无视 token,或是说 token 纯粹是个自欺欺人的摆设

token 不可伪造,只可拦截。因为 token 实际是由包括客户端唯一信息产生的识别串
当然,如果你的服务端不是这样做的,就另当别论了
  • 打赏
  • 举报
回复
自己顶一下
我看了很多关于网上刷新这个的。都不行。实际上通过burpsuite都可以伪造,因为旧的token在验证的时候直接通过了。
也就是获取新的token旧的token并不会失效。

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧