CSRF&与AngularJS + Laravel的CORS

时间:2015-11-12 16:42:59

标签: angularjs ajax laravel cors csrf

我正在使用带有Laravel后端的AngularJS webapp。

我想通过跨域请求启用CSRF保护。有可能吗?

“跨站点请求伪造”中的

$http reference表示“不会为跨域请求设置标头”

查看开发者工具日志我看到在$ 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的Request标题中我有:

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

但是没有传递CSRF检查(服务器上的TokenMismatchException)。 我想在Request头中应该有XSRF-TOKEN可以工作......

1 个答案:

答案 0 :(得分:1)

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

回答我的问题:不,这是不可能的。