2011-03-25 3 views
1

phpThumb은 큰 이미지를 이미지 축소판으로 변환하고 그 결과를 캐시하는 PHP 라이브러리입니다. 이 같은 구문한다 : 나는 엄격한 MVC 아키텍처 다음있어 내 웹 응용 프로그램에서 그러나 http://domain.com/phpThumb.php?src=/images/image.jpgphpThumb은 올바른 입력을 제공했지만 "사용법"예제를 보여줍니다.

을, 그래서 나는 이것에 구문 변경 : 그러나 http://domain.com/thumb/images%2Fimage.jpg/width/height

이제 출력 이미지 지금

를 불평을

사용법 : /workspace/urs/index.php?src=/path/and/filename.jpg 나는 $ _GET 덤프를 확인했습니다 그것을 읽고 비록

:

array(1) { 
    ["src"]=> 
    string(42) "/workspace/urs/images/portfolio/shoopm.jpg" 
} 

이이 (내 웹 응용 프로그램에서) 오류까지 실행되는 코드입니다 : 이제

// If getting a thumbnail 
if($qa[0] == "thumb") 
{ 
    if(!isset($qa[1]) || !isset($qa[2]) || !isset($qa[3])) 
     die("Bad thumb request. Needs 3 parameters!"); 

    unset($_GET["q"]); 
    $_GET["src"] = $qa[1]; 
    $_GET["w"] = $qa[2]; 
    $_GET["h"] = $qa[3]; 

    include("phpThumb/phpThumb.php"); 

    exit(); 
} 

, 내가 무엇을 두려워하고있어 phpThumb 그냥 $을 실제 URL을 확인하고없는 것입니다 _GET 매개 변수 ... 소스 코드에 수천 줄의 코드와 수천 줄의 코드가 포함되어 있기 때문에 확인하기가 어렵고 어디서부터 시작해야할지 모른다는 단서가 없습니다. 그것은 자신의 PATH_INFO 구문 분석의 작업을 시도처럼 reading some of the source으로 판단 어떤 도움이 응답

답변

1

에 대한

덕분에, 그것은 보인다. disable_pathinfo_parsing 구성 변수를 변경하거나 $_SERVER['PATH_INFO']을 null로 설정하여이를 방지 할 수 있습니다. $phpThumb 개체의 src 속성이 비어있을 때 "... 사용"오류 을 일어나는이 때문에

이 중요 할 수있다. 이 속성을 $_GET에서 찾아서이 속성을 채우고 을 처리하려고하면 꽤 심각한 $_GET['src'] 조작을 수행합니다.

대안으로, 자신의 고유 한 PATH_INFO 기반 URL을 사용하는 대신 자신 만의 URL을 사용하는 것이 좋습니다.

1

Windows 시스템에서 작업 할 때 비슷한 문제가있었습니다.

내 src 경로는 앞으로 / 및 뒤 \의 슬래시가 있으므로 PHP를 모두 DIRECTORY_SEPARATOR 상수 (Windows의 백 슬래시)로 변환했습니다.

모든 항목을 슬래시로 변환하면 방금 처리했습니다.

관련 문제