본문 바로가기

PHP

파일경로 숨기기 & 링크방지

파일경로 숨기기 & 링크방지


자료같은거 올려놓으면... 링크해가시는 분들 있습니다.. 

머..굳이.. 그걸 막으시려면.. 사용하셔도 좋을듯 싶네요..

하지만.. 예의갖춘 온라인을 지향하기 위해서.. 그런 링크훔치는 행위는 하지맙시다...^^;;


파일명: nolink.php 

<? 

$home = "도메인명"; 

/*홈페이지 주소 중에 도메인명만.. 

ex) http://supermandoo.com 이면.. supermandoo 만.. 

*/ 


$dir = "디렉토리경로"; 

//자료들을 닮을 디렉토리경로 

//자기만 알수 있게 .. 해두시면.. 사람들이 경로 캐내기가 어렵겠죠 ^^ 


function nolink() { 

       global $name,$dir; 

$filesize =filesize("$dir/$name"); 

       $fp = fread(fopen( "$dir/$name", "r"), $filesize); 

/* 

php파일이든 htm파일이든 무엇이든 바로바로 다운받게 하려면.. 

요부분에 

$string = "Content-type: Unknown"; 

header($string); 

를 추가 시키시면됩니다. ^0^;; 

*/ 

       $string =  "\n"; 

       header($string); 

       $string =  "Content-length: $filesize"; 

       header($string); 

       $string =  "\n"; 

       header($string); 

       $string =  "Content-Disposition: inline; filename=$name"; 

       header($string); 

       echo($fp); 

//nolink 함수생성.. 

//(오렌지블루님의 책중 download.php를 참고했습니다 ^^;) 

//해더를 이용하여 다운받을때.. 파일명을 알려주고 

//또 파일사이즈를 정해두는 거겠죠.. ^^ fread함수를 이용하여.. 

//다운로드 받을수있게..또는 볼수있게 echo해주는고.. ^^ 

                

if(!eregi($home,$HTTP_REFERER)){ 

//환경변수를 이용하여.. 접속경로를 채크하구.. 

//만약.. 접속경로중.. 자기도메인명이 없으면.. 


echo"다른경로에서 접근하셧습니다."; 

//경고표시 


}else{ 

nolink(); 

//그렇지안으면.. 다운로드또는 보기 

?> 

쓰는 방법.. 

nolink.php?name=파일명 

예제 

http://dookikorea.wo.to/test/nolink/test/test.htm 


참고로 이방법을 쓰면.. 만약에.. 딴홈페이지에서 자료를 

링크해놨을경우.. 다운로드 받으면.. 

"다른경로로 접근하셧습니다"라는 메시지가 뜹니다. 

또 플레쉬겟을 이용하여 다운받았을경우에는 

nolink.php가 다운받아 지며.. 그 내용은.. 

"다른경로에서 접근하셧습니다"입니다. 


[자료출처]

nzeo.com

http://supermandoo.com/cgi-bin/mandooboard//read.cgi?board=webtip&y_number=70&nnew=1


'PHP' 카테고리의 다른 글

CSS 및 JAVASCRIPT 소스 효과적으로 숨기기 (PHP이용)  (0) 2015.05.22
PDO CRUD 예제  (0) 2015.05.22
PHP Pagination 구현  (0) 2015.05.05
PDO 예제  (0) 2015.03.21
리눅스에서 SQLite 설치부터 실행까지..  (0) 2014.02.03