【发布时间】:2012-09-18 19:23:54
【问题描述】:
我有来自外部 cURL POST 的发布数据。我无法将任何自定义定义的字段添加到回发,但我可以将 CSFR 令牌填充到另一个空输入中,以便回发到我的应用程序。这样做是否可行,然后在未找到预期的 csfr_token 时修改安全类以在 _POST 数据中查找唯一输入名称?
如果这个解决方案有意义,那么任何关于如何实施的建议都将不胜感激。
【问题讨论】:
标签: codeigniter csrf
我有来自外部 cURL POST 的发布数据。我无法将任何自定义定义的字段添加到回发,但我可以将 CSFR 令牌填充到另一个空输入中,以便回发到我的应用程序。这样做是否可行,然后在未找到预期的 csfr_token 时修改安全类以在 _POST 数据中查找唯一输入名称?
如果这个解决方案有意义,那么任何关于如何实施的建议都将不胜感激。
【问题讨论】:
标签: codeigniter csrf
这可以使用配置文件来完成:application/config/config.php。只需搜索csrf 即可找到。
如果您需要“一次性使用”令牌名称,您可以使用$this->config->set_item('item','value') 方法将csrf_token_name 设置为该特定请求所需的名称。
不建议修改核心类,因为这会妨碍以后轻松升级 CI,如果您需要的话。
【讨论】:
您可以在 /system/core/Security.php 中设置 CFRF 令牌的名称。
它是第 32 行的受保护属性。
protected $_csrf_token_name = 'ci_csrf_token';
为了让纯粹主义者高兴,您可以(或应该)编写自己的扩展安全类,而不是编辑核心文件
【讨论】:
application/config/config.php 中,变量是$config['csrf_token_name']。无需弄乱核心文件、扩展类或其他任何东西。