【问题标题】:Securing asp.net webform cookie not working保护 asp.net webform cookie 不起作用
【发布时间】:2019-02-10 07:46:19
【问题描述】:

我想以某种方式保护 cookie,即使登录 cookie 被盗,它现在应该仍然可以工作,

我在 web-form .net framework 4.0 中使用默认的 asp.net 成员来保护网站上的某些页面,因此只有注册用户才能在正确登录后访问页面。但是如果中间人偷了cookie,他们仍然可以登录。

如何保护 cookie 不被盗

我确实从我身边跟随

  • 我现在在网站上使用 https
  • 其次,我在 web.config <httpCookies httpOnlyCookies="true" requireSSL="true" /> 中添加了以下代码

即使收到这些消息后,我也能够通过在不同浏览器中添加 cookie 名称和 cookie 值来登录安全网站,而无需实际使用登录表单。如果我采取了上述两个步骤,那么为什么我的 cookie 没有加密,即使 cookie 被盗,它也不应该工作.. 我做错了什么

【问题讨论】:

  • 第一道防线是使用https,如果第三人可以避免它或MITM它,没有什么可以阻止窃取cookies。您的设置中没有其他保护措施可以避免此类事情发生。您可以打开或采用的唯一另一件事是使用 HSTS,没有更多真正的 AFAIK。
  • 我在 https 上使用它,当我复制 .ASPXAUTH 值并在不同的浏览器中输入相同的值时,我可以访问安全页面。不知道我在哪里做错了

标签: c# asp.net cookies webforms


【解决方案1】:

您目前在 asp.net 中使用了最好的 cookie 保护。 httpOnlyCookies 设置阻止您网站上的任何(可能是注入的)javascript 访问令牌,requireSSL 设置阻止浏览器通过非https 连接发送它们。

这通常非常好,与大多数网站一样好或更好。

任何可以中间人连接的人,或者可以访问您机器上的 cookie 值的人仍然可以访问您的网站,但没有标准的有效防御措施。

大概是为了复制cookie,你访问了开发者工具,直接复制了值。大多数攻击者在没有破坏最终用户机器的情况下无法做到这一点,例如使用恶意浏览器扩展程序。您的 httpOnly 标志阻止他们使用脚本执行此操作。

同样,您可能已经安装了 Fiddler 之类的代理来检查流量,或者企业可能拥有过滤内容的 http 代理,但您的计算机上将安装一个可信证书,允许进行此检查。没有它,浏览器将不允许页面加载。

您可以做一些事情来进一步改进它,您可以查看HSTS,但是如果您做错了会产生严重的后果。 TLS 1.3 还包含额外的保护,但它是全新的,因此对它的支持非常多变。

向您的域发出的任何常规 ajax 请求仍会发送 cookie,但 javascript 无法访问 cookie 的内容。同样,使用Fetch API 的框架也可以配置为发送凭据。任何需要将您的身份验证cookie发送到不同域的第三方插件都做错了。

【讨论】:

  • 如果我可以进一步保护它,是否有办法让 MITM 无法访问它。
  • 啊,所以你的意思是由于 XSS 注入黑客无法使用 document.cookie js 函数如果我使用需要访问其 cookie 的第三方插件,它会阻止 JS 创建和访问 cookie
  • 我正在使用 Developer Inspect 工具复制过去的 cookie,我没有使用任何提琴手进行任何流量监控
猜你喜欢
  • 1970-01-01
  • 2016-04-22
  • 1970-01-01
  • 2021-09-19
  • 1970-01-01
  • 1970-01-01
  • 2013-07-04
  • 2017-12-01
  • 1970-01-01
相关资源
最近更新 更多