加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc – ASP.NET MVC – AntiForgeryToken会阻止用户更改

发布时间:2020-12-15 23:49:02 所属栏目:asp.Net 来源:网络整理
导读:据我所知,ASP.NET MVC中的AntiForgeryToken功能确实可以防止跨站点攻击. 但是,它是否会阻止在POST之前更改表单值? 例如,恶意攻击者可能会发现评级页面始终包含一个隐藏字段,该字段包含评级实体ID,并创建POST请求以人为地评估所有自己的实体. 确保GET和POST
据我所知,ASP.NET MVC中的AntiForgeryToken功能确实可以防止跨站点攻击.

但是,它是否会阻止在POST之前更改表单值?

例如,恶意攻击者可能会发现评级页面始终包含一个隐藏字段,该字段包含评级实体ID,并创建POST请求以人为地评估所有自己的实体.

确保GET和POST之间的表单值没有更改的首选方法是什么?

解决方法

AntiForgeryToken可防止恶意网站欺骗用户使用与原始网站相同的表单并将其发布到原始网站.它不会阻止您描述的场景.以下是攻击者为了规避令牌而可以继续进行的操作:

>黑客向表单发送GET请求.
>他读取AntiForgeryToken生成的cookie的值
>他通过发送cookie来POST处理表单操作的url,RequestVerificationToken隐藏字段与cookie和修改后的实体ID具有相同的值.

正如您所看到的,唯一的区别就是您没有使用过AntiForgeryToken,黑客需要发送额外的GET请求来读取令牌的值.

绝对没有办法阻止攻击者修改隐藏字段的值,除了验证提交表单的用户(我认为为了投票用户必须进行身份验证)不是实体ID的所有者他正在投票.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读