AngularJS + Laravel 的 CSRF 和 CORS

CSRF & CORS with AngularJS + Laravel

我正在开发具有 Laravel 后端的 AngularJS 网络应用程序。

我想通过 cross-domain 请求启用 CSRF 保护。可能吗?

$http reference 在“跨站请求伪造”中说“不会为 cross-domain 请求设置 header”

查看开发人员工具日志,我看到在 $http.post 调用之后发送了预检请求(OPTION 动词)并且它设置了 XSRF-TOKEN cookie,但是 POST请求没有 cookie,所以我不能这样做:

$http.defaults.headers.post['X-CSRFToken'] = $cookies['XSRF-TOKEN'];

有什么想法吗?

更新:

@zeroflagL:我试过

$http.defaults.headers.common.xsrfCookieName = 'XSRF-TOKEN';
$http.defaults.headers.common.xsrfHeaderName = 'X-XSRF-TOKEN';

现在在 POST 的请求 header 中,我有:

xsrfCookieName:XSRF-TOKEN
xsrfHeaderName:X-XSRF-TOKEN

但是CSRF检查没有通过(服务器上的TokenMismatchException)。 我想在请求 header 中应该有 XSRF-TOKEN 可以工作...

正如zeroflagL所说,CSRF保护不能应用于跨域请求。

回复我的问题:不,不可能。