나는 각 Ajax 함수에 대해 하나의 PHP 파일을 작성하지 않아도되도록 매개 변수를 전달하는 일반 함수를 사용하여 Ajax에서 게시 할 수 있도록 함수를 작성 중이다.PHP : params를 사용하는 방법은 무엇입니까?
이 제 기능을 우편으로 수신 후 PHP 측에서 지금의 모습, 당신은 코드에서 볼 수있는 PARAMS : 그것은 PARAMS의 일부에서 제외하고있다
$class_name = $_POST['class_name'];
$function_name = $_POST['function_name'];
$params = "'" . implode("','", $_POST['params']) . "'";
$model = new $class_name();
//Apply the function
echo $model->$function_name($params);
. .. PHP는 하나의 매개 변수로 해석하고 있습니다. 그래서 어떻게하면 $ params가 단일 문자열로 해석되지 않습니까?
이 코드는 상당히 위험한 매우 임의 코드의 실행을 허용합니다. 이것이 클래스 및 메소드 이름에 대한 화이트리스트 검사를 제거하는 간단한 예제가되기를 바랍니다. – johannes
별로 임의적이지는 않습니다. 정의 된 (또는 자동로드 가능) 클래스의 메소드 여야합니다. (예를 들어, 일부 전역'makeMeAnAdmin()'함수를 호출 할 수는 없습니다.) 그러나 이것은 일종의 화이트리스트 (또는 적어도 클래스의 isCallable 변수/메소드가 없으면 위험 할 수 있습니다. 분산 화이트리스트의 일종). – cHao