我有一个 asp.net 网络表单项目。在那里,“管理员”能够进入屏幕以提交将创建新用户 (CreateUser.aspx) 的表单。
如果该用户的权限稍后更改为低于管理员权限,他们将无法再访问该屏幕来创建新用户。但是,如果他们保存了作为管理员时创建新用户的确切 Web 请求,他们可以重播此请求并仍然创建新用户。
一个随机的人不可能提交这个表单,除非他们猜到一个活动的会话 id(这是每个表单提交时唯一检查的东西)。
CreateUser 是管理功能的众多示例之一。验证用户是否是每个这些不同表单提交的管理员的正确解决方案(不确定在 asp.net 中执行此操作的干净方法)?或者只是在注销时使会话过期并且从不重复使用会话 ID 是否可以接受?asp.net 是否有任何其他内置的安全功能来防止这种类型的攻击?