微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

asp.net – 如何防止重播攻击?

这与 another question I asked有关.总而言之,我有一个URL的特殊情况,当一个表单被POST时,我不能依靠cookie进行认证或维护用户的会话,但是我不知何故需要知道谁他们是,我需要知道他们已经登录

我想我想出了一个解决我的问题的办法,但是它需要充实.这是我在想什么我创建一个名为“username”的隐藏表单字段,并在其中放置用户用户名,加密.然后,当表单POST时,即使我没有从浏览器收到任何cookie,我知道他们登录,因为我可以解密隐藏的表单字段并获取用户名.

我可以看到的重大安全漏洞是重播攻击.如何防止某人获得该加密字符串,并以该用户身份登录?我知道我可以使用SSL来更难以窃取字符串,也可以定期旋转加密密钥来限制字符串的有效期,但是我真的很想找到一个防弹的解.有人有什么想法吗? ASP.Net ViewState是否阻止重播?如果是这样,他们怎么做呢?

编辑:我希望有一个不需要任何数据库中存储的解决方案.应用程序状态将是可行的,除非它不能在IIS重新启动或在Web场或花园场景中完全工作.现在我接受了克里斯的回答,因为我不相信甚至可以在没有数据库的情况下确保这一点.但是如果有人提出不涉及数据库的答案,我会接受的!

解决方法

如果您使用时间戳和用户名和密码进行哈希,则可以在几秒钟内关闭重播攻击的窗口.我不知道这是否满足您的需求,但至少是部分解决方案.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐