2012-08-12 3 views
-2

PHP 5.3.15에서 내 VPS (Linux)에서 CentOS를 실행 중입니다. 데이터를 게시하는 방법을 알아야합니다. 내가 페이지에 간다면 그것은 비어 있습니다.get 메소드로 실행

첫 번째 시도 :

$a = $_POST['a']; 
$c = $_POST['b']; 
$c = $_POST['c']; 
$d = $_POST['d']; 
$k = include("newb.php?a=$a&b=$b&c=$c&&d=$d"); 
exec("php newb.php?a=$a&b=$b&c=$c&&d=$d"); 

두 번째 시도 : 여기

코드의

$a = $_POST['a']; 
$c = $_POST['b']; 
$c = $_POST['c']; 
$d = $_POST['d']; 
$k = include("newb.php?a=$a&b=$b&c=$c&&d=$d"); 
exec("php $k"); 
+0

글쎄, 그 분야에 뭔가 있습니까? 당신이 그들을 에코 할 때 당신은 무엇을 보나요? –

+0

정확히 무엇을하려고합니까? newb.php를 포함하기 위해 파일이 필요하지만 newb.php는 $ _GET params를 기대합니다 (그리고 $ _POST 매개 변수 만 있습니다)? –

+0

newb.php는 $ _GET을 제외하고는 exec로 처리해야합니다. – user1588878

답변

0

(작동하지 않는 초보자 용) 포함에 대한 쿼리 문자열을 사용할 필요가 없습니다 . 쿼리 문자열은 URI의 일부입니다. URI가없는 것은 단지 파일 이름 일뿐입니다.

포함 된 파일은 이미 정의 된 변수에 액세스 할 수 있습니다.

P. 변수에 부여한 이름은 분명하고 이해할 수있는 것이 아닙니다.)

P.P.S. 너 뭐하려고? 거의 확실한 방법이 있기 때문에.

0

쿼리 문자열 (?key=value이있는 부분)은 URL의 일부입니다. 주소 표시 줄 내에서만 작동합니다. 쿼리 문자열을 사용하여 명령 줄 스크립트를 호출 할 수 없으며 포함 된 파일에서 명령 줄 스크립트를 사용할 수 없습니다. 포함 된 파일의 경우

  • , 단순히 파일을 포함하고, 어떤 당신이 선언 한 한다거나 할에 액세스 할 수있을 것이다 : 실행 파일의 경우

    include("newb.php"); 
    
  • 을 정확하게 명령에 인수를 전달 한 번에 하나의 공백으로 구분 : 명령 줄에서와 마찬가지로 다음

    exec("php newb.php $a $b $c $d"); 
    

    ,를 통해에 액세스. 당신은 당신의 코드에서 심각한 취약점이

참고. 명령 줄에서 실행될 임의의 값을 전달하고 있습니다. 공격자가 프로그램에 "`rm -rf /`"을 게시하면 서버의 모든 파일이 맹목적으로 삭제됩니다. 절대 사용자가 제출 한 데이터를 맹목적으로 코드로 실행해야합니다. 이는 실제로 여기서하는 일입니다.

+0

고맙습니다. 나는 시도 할 것이다. – user1588878

관련 문제