[英]Codeigniter slash in URL parameters
我有一个控制器,其方法接受2个参数用户名和密码,如下所示:
class Test extends CI_Controller {
public function index($username= NULL, $password = NULL){
if($username === NULL){
echo "Error";
}else if($password === NULL){
echo "Error";
}else{
echo "Your username is :"$username." and your password is :".$password;
}
}
}
在我正在做的路径文件中:
$route['Upload/(:any)'] = "Test/index/$1";
$route['Upload/(:any)/(:any)'] = "Test/index/$1/$2";
并在配置文件中:
$config['permitted_uri_chars'] = '';
网址如下: mysite.com/Test/mike123/rtO;"*skj
我面临的问题是密码可以包含一个斜杠,可以使URL像下面那样打破它:
mysite.com/Test/mike123/rtO;"*//skj
网址必须像:mysite.com/Test/param1/param2一样运行我不想对其进行网址编码。 是否有任何解决方案来运行url并获取参数mike123
和rtO;"*//skj
谢谢
您正在尝试通过URL传递密码。 你知道这根本不安全吗? 您也不想对其进行编码。
我会通过POST传递密码,这更安全,然后直接通过URL传递。
但是,如果这是您想要的,您可以在传入此函数时对密码进行url_encode,并再次将url_decode返回到函数中以供进一步使用
使用像这样的jquery发送用户名和密码
var username = $("#username").val();
var password = $("#password").val();
var datastring ='username='+username+'&password='+password;
$.post(URL,datastring,function(){
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.