如果所有浏览器都使用同源策略,CSRF 攻击如何工作?



CSRF 攻击让我无法理解的一件事是,攻击如何将我们引诱到不同的站点,并且仍然能够使用我们的会话数据。

我认为如果浏览器指向像"trustworthysite.com"这样的网站,那么所有请求(表单,ajax,xmlhttprequests等)都必须指向同一域

例如。

<form action="http://trustworthysite.com/login" method="POST">
    Your name: <input type="text"><br/>
    <input type="hidden" name="amount" value="10000">
    <input type="hidden" name="recipient" value="evil_hacker">
</form>

$.ajax({
    url: "http://trustworthysite.com/post",
    type: "POST",
    data: postData,
    success: function (data) {
    },
    error: function () {
    }
});

但是,如果攻击者引诱使用"malicioussite.com",然后尝试运行上面的Javascript代码,它不会失败,因为它是一个"跨组织"请求吗?

怎么还能行得通?

同源策略阻止 JavaScript 从不同的源读取响应。它不会停止发出请求(除非在某些有限的情况下)。

CSRF 攻击主要是发送恶意指令,而不是窃取数据。

最新更新