我在Laravel中创建了一个Web应用程序,但是CSRF
正在扼杀它的ajax功能。
使用ajax提交令牌工作正常,使用ajaxSetup
我可以将令牌附加到每个请求,因此这部分没有问题。
但是每次用户离开浏览器窗口的时间太长(可能是几个小时或更长时间),ajax请求开始返回error 500
(令牌不匹配) - 也许服务器更新令牌而客户端保留旧令牌,迫使用户刷新页面以保持其正常运行,这是我不想做的事情。
所以我想创建某种ajax定时器,以便每隔一段时间从服务器获取更新的csrf
令牌。但它似乎有点像一个hackish解决方案,甚至可能没用? (如果我正在提供令牌,有人可以请求它并仍然进行csrf攻击,对吧?)
要一劳永逸地解决这个问题,我必须做一些更有风险的事情,完全禁用CSRF
来进行ajax调用。我的问题是:这真的会伤害我的安全吗?我已经看到很多人建议将其关闭,但如果有人可以在用户帐户上交叉请求敏感操作(例如删除帐户或类似内容),那么这似乎是一件大事。
你们会推荐什么?这个问题让我醒了一夜:/
答案 0 :(得分:1)