2012-04-07 4 views
1

에서 파일의 경로를 받고 난는 조부모 폴더

Shubhmangalam/welcome_images/image_1.jpg 

내가 삭제를 다음 경로

Shubhmangalam/admin/welcome_image_edition/delete_image.php 

다음과 같은 경로에 이미지 파일이 PHP 파일을 내가 알고있는 image_1.jpg 파일은 unlink() 메서드를 사용하여 수행 할 수 있습니다. 하지만 .php 파일과 .jpg 파일의 상위 폴더가 다르기 때문에 파일 시스템의 수준도 비슷합니다. 나는 길을 찾을 수있는 적절한 방법을 찾지 못한다. image_1.jpg 파일을 읽으십시오.

는 이제 delete_image.php의 코드는, 내가, 내가 실제 경로를 싶지 않는 .. 적절한 경로를 얻어서 이미지를 삭제할 따라 이제

<?php 
$image=$_REQUEST['image']; 
if(unlink("./../welcome_images/".$image)) 
    echo "Successfully Deleted"; 
else 
    echo "Wrong"; 
?> 

위입니다 서버 스크립트 코드이지만, 사전에 Shubhmangalam

덕분에 프로젝트 폴더의 경로는

+0

좋아, 난 내 대답을 얻었다, 나는 그래서 코드 "를 사용 delete_image.php 파일의 그랜드 부모의 부모를 찾을 필요가있다. ./../welcome_images/ ".$image – Saswat

답변

2

코드의 이러한 유형의 매우주의해야합니다. 당신은 악의적 인 사용자가 서버에있는 파일을 지정할 수있는, 전혀 $ _REQUEST 값을 필터링하지 않는 예 :

unlink('/path/leading/to/your/welcome_images/' . $image); 
: 당신은 절대 경로를 사용하여 경로 지정 문제를 해결할 수
http://example.com/delete_image.php?image=../../../../../../../../../etc/passwd 

적절한 상대 경로를 찾아야하는 부담을 덜어줍니다. 인

+0

괜찮 았어, 내 대답이있어, 나는 파일의 grand-parent의 부모를 찾아야 해. delete_image.php 그래서 나는 코드 "../ ..을 사용했다. /welcome_images/ ".$image – Saswat

2
Shubhmangalam/admin/welcome_image_edition/delete_image.php 

:

__FILE__ 

되고 follwing을 경로

Shubhmangalam/welcome_images/image_1.jpg 

와 화상 파일을 제 파일

dirname(dirname(__DIR__)) . '/welcome_images/image_1.jp'; 

. 예를 들어, 자신의 좋은위한 magic constants __FILE__ and __DIR__를 사용

if (unlink(__DIR__."/../../welcome_images/".$image)) 
{ 
    ... 
관련 문제