好的,我花了3天时间试图找出这里发生了什么,我很难过.
该网站使用CI构建.(http://horizoneslchina.com)
有一段时间,无论何时在中国,我都会得到不允许的关键人物.
我使用以下内容扩展了核心Input类:
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class MY_Input extends CI_Input {
function _clean_input_keys($str)
{
$config=&get_config('config');
if(!preg_match("/^[".$config['permitted_uri_chars']."]+$/i",rawurlencode($str)))
{
exit('Disallowed Key Characters. '.$str);
}
//CleanUTF-8ifsupported
if(UTF8_ENABLED===TRUE)
{
$str=$this->uni->clean_string($str);
}
return $str;
}
}
/* End of file My_Input.php */
Run Code Online (Sandbox Code Playgroud)
它似乎解决了这个问题,但现在我的情况是没有一个会话将保持不变.当中国某人登录并尝试访问任何安全页面时,它会立即终止会话.
这在澳大利亚不会发生,在印度也不会发生.我能找到的唯一区别是在中文系统上,逗号放在会话名称前面.EG,_ci_session和上面的函数之前把它作为问题抛弃了.
有没有人对此有任何想法?