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

asp.net-mvc – 防止更改隐藏字段

发布时间:2020-12-15 22:28:54 所属栏目:asp.Net 来源:网络整理
导读:如果我的ChangePassword表单包含用户的隐藏ID字段,该怎么办? BadPerson知道GoodPerson的ID.他用FireBug打开Change Password表单,将他的Id更改为GoodPerson的Id,因此GoodPerson的密码更改. 当然我可以创建一些可以防止这种情况的服务器逻辑,但我认为应该有一
如果我的ChangePassword表单包含用户的隐藏ID字段,该怎么办?

BadPerson知道GoodPerson的ID.他用FireBug打开Change Password表单,将他的Id更改为GoodPerson的Id,因此GoodPerson的密码更改.

当然我可以创建一些可以防止这种情况的服务器逻辑,但我认为应该有一些开箱即用的解决方案,如果隐藏的字段被更改,我会不知道.

提前致谢.

编辑
好的,更改密码是个坏例子.我在隐藏字段中具有id的任何编辑表单都存在同样的问题.

解决方法

没有什么可以让你知道隐藏字段值的值是否已经改变.对于用户更改其密码,这意味着他需要进行身份验证.使用表单身份验证时,当前经过身份验证的用户的ID存储在无法修改的加密cookie中.

这就是说您不应该使用隐藏字段来存储当前连接的用户.只需使用内置的FormsAuthentication mechanism in ASP.NET,永远不要将这些信息存储在隐藏的字段中. ASP.NET知道cookie的值未被篡改的方式是它使用配置中指定的machineKey进行签名.

处理安全性和身份验证时应遵循一条重要规则:始终使用内置安全机制,永远不要自己动手.

(编辑:李大同)

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

    推荐文章
      热点阅读