在我的网络应用中禁用CSRF或更安全的方法

时间:2015-10-10 05:01:26

标签: javascript ajax laravel-5 csrf csrf-protection

我在Laravel中创建了一个Web应用程序,但是CSRF正在扼杀它的ajax功能。

使用ajax提交令牌工作正常,使用ajaxSetup我可以将令牌附加到每个请求,因此这部分没有问题。

但是每次用户离开浏览器窗口的时间太长(可能是几个小时或更长时间),ajax请求开始返回error 500(令牌不匹配) - 也许服务器更新令牌而客户端保留旧令牌,迫使用户刷新页面以保持其正常运行,这是我不想做的事情。

所以我想创建某种ajax定时器,以便每隔一段时间从服务器获取更新的csrf令牌。但它似乎有点像一个hackish解决方案,甚至可能没用? (如果我正在提供令牌,有人可以请求它并仍然进行csrf攻击,对吧?)

要一劳永逸地解决这个问题,我必须做一些更有风险的事情,完全禁用CSRF来进行ajax调用。我的问题是:这真的会伤害我的安全吗?我已经看到很多人建议将其关闭,但如果有人可以在用户帐户上交叉请求敏感操作(例如删除帐户或类似内容),那么这似乎是一件大事。

你们会推荐什么?这个问题让我醒了一夜:/

1 个答案:

答案 0 :(得分:1)

我现在只考虑选项......

您可以开始查看应用程序上的CORS配置。

更改少数Access-Control-Allow-Origin的{​​{1}}标头。 reference