【问题标题】:codeigniter Disallowed Key Characters - when all characters are allowed [duplicate]codeigniter Disallowed Key Characters - 当所有字符都被允许时[重复]
【发布时间】:2011-05-26 05:32:22
【问题描述】:

可能重复:
CodeIgniter Disallowed Key Characters

我最近将 CI 从 1.7 升级到了 2.0。在我开始收到 CI 之后

不允许的关键字符

错误。

然后我允许接受所有字符,看看错误是否会消失。

$config['permitted_uri_chars'] = '';

然而,这并没有改变什么

我也启用了查询字符串

$config['enable_query_strings'] = TRUE;

我只是不知道为什么当我允许所有字符都被接受时会出现不允许的字符错误。

这是一个 url 示例,我会在其中得到不允许的键字符错误:

http://localhost/myapp/index.php??c=user&m=login

但是,如果我要删除其中一个“?”它有效

http://localhost/myapp/index.php?c=user&m=login

我确实有一个 htaccess 文件,其中包含:

RewriteEngine on
RewriteRule (.*)/index.php $1/ [L]

有什么帮助吗?

【问题讨论】:

    标签: php codeigniter


    【解决方案1】:

    看起来 CodeIgniter 对 GET/POST/和 cookie 数据键名进行了单独检查,并在其中验证它们:

    /^[a-z0-9:_\/-]+$/i
    

    见:https://bitbucket.org/ellislab/codeigniter/src/c2dad3edb148/system/core/Input.php#cl-537

    除了编辑/子类化 Input.php 之外,我没有看到禁用此检查的简单方法。不过,您最好还是使用没有奇怪符号的键。

    【讨论】:

      【解决方案2】:

      正如代码 cmets 中所述,非常不鼓励您这样做

      | As a security measure you are STRONGLY encouraged to restrict URLs to
      | as few characters as possible.  By default only these are allowed: a-z 0-9~%.:_-
      |
      | Leave blank to allow all characters -- but only if you are insane.
      |
      | DO NOT CHANGE THIS UNLESS YOU FULLY UNDERSTAND THE REPERCUSSIONS!!
      

      尽管如此,一个可能的解决方案是清除您的缓存,特别是您的 cookies,例如,您可以在this 主题中看到CI 论坛(以及在较小程度上,您可以在谷歌上搜索的其他资源)

      编辑:发布后,我看到您编辑了您的问题并添加了重要细节。正如其他用户所建议的,您需要检查输入类以破解 codeigniter 如何实现其自己的 POST 和 GET 处理。

      特别是,我正在查看 library/input.php 中的 function _clean_input_keys($str),并在那里更改正则表达式

      【讨论】:

      • 允许所有字符只是暂时的,因为我弄清楚为什么我仍然收到此错误。当我使用 CI 1.7 时,我允许使用默认字符以及“?”例如:a-z 0-9~%.:_-? 并且在接收不允许的关键字符消息方面没有问题
      • 感谢@Damien Pirsy 的帮助。我会调查的。我想我可能需要编辑它。我遇到的真正问题是处理 facebook 及其回调 url。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-11-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-11-17
      • 1970-01-01
      相关资源
      最近更新 更多