
페이지를 가져다가 iframe 이나 링크 등으로 갖어간 경우가 많습니다.
아주 악의적일 경우에는 트래픽, 또는 얍삽한 방법으로 서비스만 이용하는 경우도 간혹 있죠.
이런 부분을 막는 방법은 여러가지 있겠지만,
Referer 를 이용한 막는 간단하면서도 강력한 방법이 있습니다.
물론 javascript 도 쉽게 가능하지만, 이왕이면 php 로 하는것이 훨 좋은 방법이니 간단하게 작성해보겠습니다.
$_SERVER['HTTP_REFERER']; 를 이용해서 페이지를 읽기 바로 직전 위치를 저장해둡니다.(링크등)
그리고 직접적으로 접속한 주소가 abc.com 이라면, 정상으로 인정하고
def.com 이라면 페이지 강제이동을 시키도록 하겠습니다.
$url = $_SERVER['HTTP_REFERER'];
$link = 'www.abc.com'; / 정상 확인용 주소
if ($url == $link )
{
echo ('정상접속');
}
else
{
echo ('비정상 접속');
}
너무 간단하게 처리되었습니다.
너무 간단해서 일반적인 문제점 하나를 추가적으로 거론하게 가겠습니다.
위와같이 레퍼러 주소를 받았을 경우 뒤에 파라미터나 id 값이 존재할 경우 url 만 나오지 않으므로
받은 값을 분배하여 도메인 값만 빼보겠습니다.
parse_url(); 를 이용하면 자동으로 배열로 url, host, path 등으로 분배 됩니다.
확인하고자 하실경우에는 parse_r(parse(url)); 하시면 배열로 자동 분배되는것을 확인할 수 있습니다.
아래는 예시
$url1 = $_SERVER['HTTP_REFERER'];
$url2 = parse_url($url1);
// echo $url2[host];
그럼, 너무 간단해서 죄송하다는 말만 남기고, 또 가겠습니다.
다음에는 이전에 기획했던 접속자 분배 차단 코딩을 해보록 하겠습니다.
- 2009-09-28 17;48;55.jpg (14.4KB) (15)



