惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Recent Announcements
Recent Announcements
Martin Fowler
Martin Fowler
MongoDB | Blog
MongoDB | Blog
Engineering at Meta
Engineering at Meta
Stack Overflow Blog
Stack Overflow Blog
Google DeepMind News
Google DeepMind News
Microsoft Security Blog
Microsoft Security Blog
aimingoo的专栏
aimingoo的专栏
I
InfoQ
B
Blog
WordPress大学
WordPress大学
Jina AI
Jina AI
小众软件
小众软件
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
博客园_首页
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
酷 壳 – CoolShell
酷 壳 – CoolShell
阮一峰的网络日志
阮一峰的网络日志
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
G
Google Developers Blog
C
Check Point Blog
月光博客
月光博客
L
LangChain Blog
GbyAI
GbyAI

博客园 - myx

安装gitlab管理自己的代码 升级Tornado到4后weibo oauth登录不了 SQL Server 无日志文件附加数据库 用monit监控系统关键进程 Failed to read auto-increment value from storage engine错误的处理方法 今天测试了一下 sqlalchemy 性能 PIL The _imaging C module is not installed phpExcel大数据量情况下内存溢出解决 tcpdf慢及常用的一些方法及问题 Python获取WebService CodeIgniter链接ms sql 如果数据库名称有点号连接出错 用python写windows服务 CodeIgniter链接ms sql 的过程windows 2008 关于NTLM认证的.NET,php,python登录 DotNetOpenAuth的Facebook登录,获取头像与基本资料 php里的html内容切取 js生成新加坡的NRIC号码 Sina站内应用的登录 PowerDesigner 链接MySql 用ODBC链接不上的问题
CodeIgniter出现Disallowed Key Characters的问题
myx · 2013-04-16 · via 博客园 - myx

最近在用CI的时候。在测试的时候有时候返回:Disallowed Key Characters ,如果清空游览器会好,但如果有多用户登录后会经常出现。搜索才发现是CI的Input.php的处理有问题。

    function _clean_input_keys($str)
    {
        if ( ! preg_match("/^[a-z0-9:_\/-]+$/i", $str))
        {
            exit('Disallowed Key Characters.');
        }

        // Clean UTF-8 if supported
        if (UTF8_ENABLED === TRUE)
        {
            $str = $this->uni->clean_string($str);
        }

        return $str;
         }

这里修改成如下:

function _clean_input_keys($str)
    {
         $config = &get_config('config');  
         if (!empty($config['permitted_uri_chars']))
          {
             if (!preg_match("/^[".$config['permitted_uri_chars']."]+$/i", rawurlencode($str)))   
             {   
                 exit('Disallowed Key Characters.');   
             }
          }
    // Clean UTF-8 if supported
        if (UTF8_ENABLED === TRUE)
        {
            $str = $this->uni->clean_string($str);
        }
return $str;   
    }

然后把 config/config.php 里面的:

$config['permitted_uri_chars'] = 'a-z 0-9~%.:_\-';

修改成

$config['permitted_uri_chars'] = '';

就没出现这问题了。

见:http://www.kukaka.org/home/content/576

或:http://www.nowamagic.net/librarys/veda/detail/1699

function _clean_input_keys($str)
{
    if(preg_match("/^,_[a-z0-9:_\/-]+$/",$str)){
        $str = preg_replace("/,_/","",$str);
        }
                
        if ( ! preg_match("/^[a-z0-9:_\/-]+$/i", $str))
         {
             exit('Disallowed Key Characters.'.$str);
       }
    return $str;
}