HTTPS 容易受到 CSRF 攻击吗?

Is HTTPS vulnerable to CSRF?

背景:

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

问题:

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

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

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

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

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