我在处理ci时遇到了问题,找到了一种方法来克服它。
问题是,
你能看到这里有什么安全问题吗?
我有各种各样的网址
/contacts
/company/info
我的默认控制器在代码点火器上被调用
指数
我可以让CI表现得
$_GET
只要我跟着
class/function/default_controller
.
这两个URL的作用都是:
// class + function + default controller = ok
/class/function/index?var1=this&var2=that
// class + default controller = ok
/class/index?var1=this&var2=that
问题是我想这些也能用
// class without function nor default controller = NOT OK
/class?var1=this&var2=that
// class + function without default controller = NOT OK
/class/function?var1=this&var2=that
我的解决方案是在
$_SERVER['REQUEST_URI']
.
我不是Regex的专家,所以,你能在这里看到一个可能的安全问题吗?
/*
|---------------------------------------------------------------
| MAKE CODEIGNITER BEHAVE ON _GETS!
|---------------------------------------------------------------
|
| CI doesn't like to play ball with /contacts?a=23 and fails on several ocasions
| This forces the first ? or & to be replaced by /index/ that is the default controller
|
*/
$_SERVER['REQUEST_URI'] = preg_replace('/\?|\&/', '/index/', $_SERVER['REQUEST_URI'], 1);
谢谢您。