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