HTTPS容易受到CSRF的影响吗?

时间:2015-04-03 15:59:40

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

背景:

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

问题:

有人可以预先形成跨浏览器攻击antiforgerytoken的目的是防止使用TLS 1 +进行过多的HTTPS吗?

2 个答案:

答案 0 :(得分:3)

简短回答: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仍将加密其网站与浏览器之间的通信,并且不会以任何方式阻止此攻击。但是,如果您的网站使用防伪令牌,则攻击者需要将该令牌放入其表单中,如果您正确实施,则无法知道令牌是什么。

答案 1 :(得分:1)

https可能会阻止中间人攻击。但是如果我在你的网站上得到一个脚本,我可以操纵我想要的HTML。

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

https只能确保服务器说它是它声称的那个人。并不是说客户没有做任何奇怪的事情。