【问题标题】:Disabling CSRF in my web app or a safer approach在我的网络应用程序中禁用 CSRF 或更安全的方法
【发布时间】:2016-01-08 02:58:22
【问题描述】:

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

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

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

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

为了一劳永逸地解决这个问题,我必须做一些更冒险的事情,完全禁用 CSRF 来进行 ajax 调用。我的问题是:这真的会对我的安全造成那么严重的伤害吗?我看到很多人建议关闭它,但如果有人可以交叉请求用户帐户上的敏感操作(例如删除帐户或类似的东西),这似乎很重要

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

【问题讨论】:

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


    【解决方案1】:

    我现在只有一个选项...

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

    为少数routes 更改Access-Control-Allow-Origin 标头。 reference

    【讨论】:

    • 听起来很有趣@Alvaro Joao 我一直在研究这个,这似乎是一个安全的选择!瓦卢 :)
    猜你喜欢
    • 1970-01-01
    • 2013-07-10
    • 1970-01-01
    • 2010-09-24
    • 2017-08-12
    • 2013-01-26
    • 2013-07-16
    • 2011-02-20
    • 2015-11-07
    相关资源
    最近更新 更多