【问题标题】:CSRF not working properly in codeigniterCSRF 在 codeigniter 中无法正常工作
【发布时间】:2017-01-05 10:52:19
【问题描述】:

我正在使用 codeigniter 3.0.6。目前在有搜索功能的一页网站上工作。我在 codeigniter 的配置文件中启用了 csrf_protection 选项,并使用 form_open() 函数创建表单。

当我按下提交按钮时,搜索功能运行良好,但是当我刷新页面(具有刷新页面的任何功能,即从键盘或浏览器刷新)提交表单后,CSRF 不起作用并显示错误“您请求的操作不被允许。”。

注意:我正在使用 post 方法提交表单并将 csrf_regenerate 设置为 true。

【问题讨论】:

  • 您好,如果您刷新页面,那么数据将被删除。
  • 您需要确保您的所有请求都包含 ci_csrf_token,包括您的每个请求。
  • 类似这样的
  • 当您刷新页面时,您是否使用任何形式发布任何内容?如果是这样,那么您需要在使用这种功能的任何地方传递它。让我们知道这是否有帮助。

标签: codeigniter


【解决方案1】:

问题在于 $config['csrf_regenerate'] = TRUE; 将其设置为 FALSE。

当您每次向服务器发布 TRUE 时,CSRF 令牌都会更改值。该页面必须完全重新加载才能接收新令牌。后退按钮不会完全重新加载页面,但浏览器的刷新/重新加载按钮应该。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-30
    • 1970-01-01
    相关资源
    最近更新 更多