Live Brilliant

[php] 파일 url 직접 접근 막기 본문

개발은 핵찜이야/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');



http://www.php.net/manual/en/function.preg-match.php

Comments