개발은 핵찜이야/PHP
[php] 파일 url 직접 접근 막기
주인정
2013. 11. 26. 18:32
1. 현재 페이지와 이전 페이지 문자열 체크
ereg = 대소문자 가림
eregi = 대소문자 가리지않음
-ajax 나 iframe 접근일경우 사용하면된다.
if(!eregi($_SERVER['HTTP_HOST'], $_SERVER['HTTP_REFERER'])) exit('No direct access allowed');
2. include 파일 직접접 막기
- print_r($_SERVER); 치면 해당 페이지 정보가 나온다.
- __FILE__ 함수를 치면
파일의 전체경로와 파일명. 포함한 파일 안에서 사용하면, 포함된 파일명을 반환합니다.
현재페이지와 include 한 페이지명이 같으면 exit 시킨다.
if(realpath($_SERVER[SCRIPT_FILENAME]) == realpath(__FILE__))
exit('No direct script access allowed');
#PHP 5.3 이상 버전 사용법
- 5.3 이하 버전에서 eregi 사용시 에러 발생 [Function eregi() is deprecated in]
>함수 지원 중단, 유사 함수 사용
-ereg, eregi --> preg_match
-ereg_replace --> preg_replace
if(!preg_match("/".$_SERVER['HTTP_HOST']."/i",$_SERVER['HTTP_REFERER']))
exit('No direct access allowed');
[출처] PHP5.3 이상 업그레이드|작성자 나눔HN