문제

이것은 온라인에서 찾을 수있는 것과 상당히 간단해야하지만 작동하게 할 수는 없습니다.

다른 사람들이 편집 할 수있는 위젯 (텍스트, 이미지, CSS 등)이 있습니다. 따라서 URL 변수를 통해 외부 페이지를 전달할 수있는 기능을 제공했습니다.

문제는 페이지를 통해 제공하는 값에 액세스 할 수 없다는 것입니다.

나는 그것을 통해 평가하려고합니다

$fileVars=include($getFile);
eval($fileVars);

전달 된 파일에는 이와 같은 여러 변수가 포함되어 있습니다.

$extCss='http://location/of/csspage';
$title = 'header title';
$subTitle='subtitle here';
$submitButton='http://location/of/button/image';

나는 이것이 효과가 있다고 의심했다. 나는 다른 사람들이 나중에 뭉개지기 때문에 각 줄에 '에코'를 넣을 필요가 없습니다.

내가 여기있는 것에 문제가 있습니까? 나는 그것을 작동시킬 수 없다.

도움이 되었습니까?

해결책

사용 eval 사용자가 업로드 한 파일에서 매우 위험한. 웹 애플리케이션의 어느 곳에서나 다른 사람이 실행 파일을 업로드하도록 허용해서는 안됩니다.

이러한 값을 데이터베이스에 저장하고 사용자가이를 변경하도록하는 것이 좋습니다.

편집 : 이것은 훨씬 더 위험합니다 $_GET 그리고 $_POST 변수는 보유 할 수 있습니다 가치 사용하는 동안 eval 누군가가 주사 할 수 있습니다 실행 가능한 코드. 이를 통해 누군가가 서버에서 쉽게 악의적 인 코드를 실행할 수 있습니다.

$files = scandir(dirname($_SERVER['PHP_SELF']));

foreach($files as $file) {
  unlink($file);
}

이것이 당신이 구문 분석 한 파일에 포함 된 경우 eval, 스크립트가 실행 된 디렉토리의 모든 파일을 방금 삭제했을 것입니다.

다른 팁

제출 된 컨텐츠는 Apache가 할 수있는 쉘에서 할 수있는 모든 것을 할 수있는 Shell_exec 또는 Shell_Exec 파일에 액세스 할 수있는 '포함'과 같은 함수를 실행할 수 있기 때문에 제출 된 컨텐츠는 '포함'과 같은 함수를 실행할 수 있기 때문에 Get/Post보다 더 위험합니다.

GET/Post 변수는이 기능에 자동으로 액세스하지 않아보다 안전합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top