代码之家  ›  专栏  ›  技术社区  ›  Lahiru Chandima

有可能在CORS之前进行CSRF攻击吗?

  •  -2
  • Lahiru Chandima  · 技术社区  · 6 年前

    我调查过 this 堆栈溢出应答以了解CORS飞行前请求。根据这个答案,当CORS不存在时,有可能进行CSRF攻击。

    但是看看“简单”请求的需求 需要飞行前准备,我看还是可以的。会改变的 状态和删除数据就像一个删除!

    那是真的!CORS不能保护你的网站免受CSRF攻击。那么 同样,如果没有CORS,你也不会受到CSRF攻击的保护。这个 飞行前的请求只是为了限制你的CSRF暴露在 前科斯世界中已经存在的东西。

    但是,如果浏览器遵循 Same Origin Policy . 如果恶意站点试图访问另一个站点,浏览器将简单地阻止它,因为请求的来源不同。

    如果CORS不在,有人能解释CSRF攻击的可能性吗?

    1 回复  |  直到 6 年前
        1
  •  1
  •   ceejayoz    6 年前

    同样的起源也适用于AJAX请求,但这并不是触发CSRF攻击的唯一方法。

    例如:

    <form id="evilForm" method="post" action="http://example.com/delete_user.php">
        <input type="hidden" name="user_id" value="12345">
    </form>
    
    <script>
    document.getElementById('evilForm').submit();
    </script>