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

标签 javascript ajax laravel-5 csrf csrf-protection

我正在 Laravel 中创建一个 Web 应用程序,但是 CSRF 正在终止其 ajax 功能。

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

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

所以我正在考虑创建某种ajax计时器来每隔一段时间从服务器获取更新的csrf token ..但这似乎是一个有点黑客的解决方案,甚至可能无用? (如果我提供 token ,有人可以请求它并仍然进行 csrf 攻击,对吧?)

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

你们会推荐什么?这个问题让我彻夜难眠:/

最佳答案

我现在脑子里只有一个选择...

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

更改少数路由Access-Control-Allow-Origin header 。 reference

关于javascript - 在我的网络应用程序中禁用 CSRF 或更安全的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33050489/

相关文章:

javascript - 获取div内最接近的img src

javascript - 对过滤器索引使用react更新状态

javascript - 没有弹出窗口的Facebook登录?

php - 我的 $_FILES 在哪里? Ajax 上传

javascript - 如何防止刷新时 jquery ui 默认第一个选项卡处于事件状态

php - MySql 多对多搜索

laravel-5 - Laravel 5.5 和 CKEditor 选项

javascript - 向选中的单选按钮之前的所有单选按钮添加不同的类

javascript - Ajax 请求未重定向到 URL

php - 如何在 Laravel 中选择外键值