【发布时间】:2014-12-17 17:17:03
【问题描述】:
我们正在构建一个带有在 JBoss 中运行的 Java Spring/Hibernate 后端的应用。前端是 AngularJS。
我们还没有在服务器端设置 XSRF 令牌。我们也没有(无论如何还没有)要求允许其他域访问我们的网络资源。
我想我会尝试查看我们的网站是否容易受到 XSRF 攻击,因此我设置了一个恶意 web 应用程序,以使用 Angular 的 $http.post() 发布到我们真实应用程序的 URL 之一。我登录了真正的应用程序,然后尝试从恶意应用程序发帖。
在浏览器中我收到 401 响应并看到错误:
XMLHttpRequest cannot load http://localhost:8080/user/delete. No
'Access-Control-Allow-Origin' header is present on the requested resource.
Origin 'http://localhost:6543' is therefore not allowed access. The response
had HTTP status code 401.
服务器端未设置在响应上设置 Access-Control-Allow-Origin,因此出现上述错误。
所以我的问题是,仅仅从响应标头中省略 Access-Control-Allow-Origin 是否足以防止 XSRF 攻击?
即使没有设置 Access-Control-Allow-Origin,我是否仍然可以对我的网站进行 XSRF 攻击?如果有怎么办?我想演示一下这个攻击。
谢谢。
【问题讨论】:
标签: java angularjs spring security csrf