【问题标题】:Is HTTPS vulnerable to CSRF?HTTPS 是否容易受到 CSRF 的攻击?
【发布时间】:2015-06-08 17:51:31
【问题描述】:

背景:

我有一个 MVC 3 .NET 应用程序,并且正在阅读 antiforgerytoken Here。我可以使用antiforgerytoken 来帮助防止这种攻击,但我也知道我的网站正在运行 HTTPS TLS 1+。

问题:

有人可以执行那种跨浏览器攻击antiforgerytoken 旨在防止通过 HTTPS 使用 TLS 1+ 吗?

【问题讨论】:

  • 请注意,跨站点请求伪造 (CSRF) 是与跨站点脚本 (XSS) 不同的漏洞。
  • @mikez 你是对的。我修改了标题以反映我的问题。

标签: c# asp.net-mvc-3 security ssl https


【解决方案1】:

简答:HTTPS 不能防止 CSRF 攻击。

如果一个坏人在他的网站上放置一个表单,向您的网站发布一些指示以执行用户不想要的操作,HTTPS 不会阻止它。

例子:

假设您的站点有一个名为 account.aspx 的页面,如果发送的 POST 变量 'delete' 的值为 'true',则删除当前帐户。坏人可以把它放在他的网站上

<form action="https://your.site.com/account.aspx" method="post">
  <input type="hidden" name="delete" value="true" />
  <input type="submit" value="Like this on Facebook" />
</form>

现在,如果您的一位用户碰巧登录到您的网站并单击此按钮,他们的浏览器将被定向到您的网站,并且他们的帐户将被删除。 HTTPS 仍然会加密他们的站点和您的浏览器之间的通信,并且不会以任何方式阻止这种攻击。但是,如果您的网站正在使用防伪令牌,则攻击者需要将该令牌放入他的表单中,如果您正确实施,他将无法知道该令牌是什么。

【讨论】:

    【解决方案2】:

    https 可能会阻止中间人攻击。但是,如果我在您的网站上获得脚本,我无论如何都可以操作 html。

    有关详细说明,您可以在此处查看示例http://www.devcurry.com/2013/01/what-is-antiforgerytoken-and-why-do-i.html

    https 仅确保服务器说的是它声称的身份。并不是说客户没有做任何奇怪的事情。

    【讨论】:

      猜你喜欢
      • 2023-04-07
      • 2012-06-16
      • 1970-01-01
      • 2015-12-31
      • 2016-04-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-30
      相关资源
      最近更新 更多