【问题标题】:How to optionally change the CSRF name in security class如何有选择地更改安全类中的 CSRF 名称
【发布时间】:2012-09-18 19:23:54
【问题描述】:

我有来自外部 cURL POST 的发布数据。我无法将任何自定义定义的字段添加到回发,但我可以将 CSFR 令牌填充到另一个空输入中,以便回发到我的应用程序。这样做是否可行,然后在未找到预期的 csfr_token 时修改安全类以在 _POST 数据中查找唯一输入名称?

如果这个解决方案有意义,那么任何关于如何实施的建议都将不胜感激。

【问题讨论】:

    标签: codeigniter csrf


    【解决方案1】:

    这可以使用配置文件来完成:application/config/config.php。只需搜索csrf 即可找到。

    如果您需要“一次性使用”令牌名称,您可以使用$this->config->set_item('item','value') 方法将csrf_token_name 设置为该特定请求所需的名称。

    不建议修改核心类,因为这会妨碍以后轻松升级 CI,如果您需要的话。

    【讨论】:

      【解决方案2】:

      您可以在 /system/core/Security.php 中设置 CFRF 令牌的名称。
      它是第 32 行的受保护属性。

      protected $_csrf_token_name = 'ci_csrf_token';
      

      为了让纯粹主义者高兴,您可以(或应该)编写自己的扩展安全类,而不是编辑核心文件

      【讨论】:

      • -1。您不必重写安全类来更改 CSRF 令牌。它在application/config/config.php 中,变量是$config['csrf_token_name']。无需弄乱核心文件、扩展类或其他任何东西。
      猜你喜欢
      • 2017-12-23
      • 2015-02-05
      • 2022-08-03
      • 2015-12-22
      • 2018-11-29
      • 2012-06-09
      • 2022-11-04
      • 2014-11-21
      • 2011-05-13
      相关资源
      最近更新 更多