asp.net - 某些黑客能否从用户那里窃取 Web 浏览器 cookie 并在网站上使用该名称登录?

标签 asp.net security cookies forms-authentication

读到这个问题,
Different users get the same cookie - value in .ASPXANONYMOUS

并寻找解决方案,我开始思考,如果有人真的可以通过某种方式窃取 cookie,然后将其放在他的浏览器上并以管理员身份登录 .

您知道表单例份验证如何确保即使 cookie 被盗,黑客也不会在实际登录中使用它吗?

还有其他替代的自动防御机制吗?

最佳答案

Is it possible to steal a cookie and authenticate as an administrator?



是的,如果 Forms Auth cookie 未加密,则可能有人会破解他们的 cookie 以赋予他们更高的权限,或者如果不需要 SSL,则复制其他人的 cookie。但是,您可以采取一些措施来降低这些风险:

在 system.web/authentication/forms 元素上:
  • 要求SSL=真。这要求 cookie 仅通过 SSL
  • 传输。
  • 滑动过期=假。如果为 true,则可以重新激活过期的票证。
  • 无 cookies =假。不要在您试图强制执行安全性的环境中使用无 cookie session 。
  • enableCrossAppRedirects=false。如果为 false,则不允许跨应用程序处理 cookie。
  • 保护=全部。使用 machine.config 或 web.config 中指定的机器 key 对 Forms Auth cookie 进行加密和散列。此功能将阻止某人破解他们自己的 cookie,因为此设置告诉系统生成 cookie 的签名,并在每个身份验证请求上,将签名与传递的 cookie 进行比较。

  • 如果您愿意,您可以通过在 Session 中放置某种身份验证信息来添加一点保护,例如用户用户名的哈希(绝不是纯文本的用户名或密码)。这将要求攻击者窃取 Session cookie 和 Forms Auth cookie。

    关于asp.net - 某些黑客能否从用户那里窃取 Web 浏览器 cookie 并在网站上使用该名称登录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2498599/

    相关文章:

    asp.net - MVC+ Razor : how to add starting <div> conditionally?

    java - 如何使用MySQL数据库来验证用户身份?

    c# - 奇怪的异常场景 System.Net.Http MediaTypeHeaderValue 无法转换为 MediaTypeHeaderValue

    asp.net - AJAX post 中的 HttpWebRequest 之后 session 状态丢失

    asp.net - 为什么 ASP.NET 网站在添加本地引用时从 GAC 引用程序集?

    android - 是否可以保护加密 key 不被 iOS/Android 中的恶意应用程序读取?

    html - 谷歌分析;短设置 Q

    javascript - IndexedDB 与 Cookie 安全性

    c# - .Net Core cookie不会被设置

    javascript - 添加嵌入式谷歌地图时console.log中的警告