php 도 난 방지 체인 실현

때때로 우 리 는 우리 사 이 트 를 방문 하 는 사용 자 는 특정한 링크 나 페이지 를 통 해 우리 의 사이트 페이지 에 만 들 어 갈 수 있 기 를 희망 한다.이때 도 난 방지 체인 기술 을 실현 해 야 한다.http 프로 토 콜 의 referer 내용 필터 에 사 용 됩 니 다.
    예 를 들 어 우리 지역 에 웹 페이지 가 있 습 니 다.경 로 는 다음 과 같 습 니 다.http://localhost/http/fdl_one.php,내용 은 다음 과 같 습 니 다.
<a href="fdl_two.php">click here to see more</a>
    또 다른 웹 페이지 가 있 습 니 다.경 로 는:http://localhost/http/fdl_three.php,내용 은 다음 과 같 습 니 다.
<a href="fdl_two.php">I also want to see more</a>
    이 두 페이지 가 방문 하고 싶 은 페이지,즉http://localhost/http/fdl_to.php,모두 각자 방문 할 수 있 습 니 다.하지만 fdl 를 걸 러 내 려 면three.php 접근,즉 fdlone.php 의 하이퍼링크 fdl 진입two.php,fdl_to.php 의 내용 은 다음 과 같 습 니 다.
<?php
	if(isset($_SERVER['HTTP_REFERER'])){
		if(strpos($_SERVER['HTTP_REFERER'],"http://localhost/http/fdl_one.php")===FALSE){
			header("Location:http_test_err.php");
		}else{
			echo "yes,you can see it now.";
		}
	}else{
		header("Location:http_test_err.php");//            ,     referer,           
	}
	
?>
    
    http_test_err.php 는 접근 금지 정 보 를 저장 합 니 다.
    특히 strpos 의 반환 값 입 니 다.인자 2 문자열 이 인자 1 문자열 에서 시작 하 는 위 치 를 되 돌려 줍 니 다.인자 2 를 찾 지 못 하면 FALSE 로 돌아 갑 니 다.그러므로 사용 할 때 일치 하 는 지 여 부 를 먼저 판단 해 야 한다.이때 반환 값 의 유형 과 값 을 엄 격 히 통제 하고==기 호 를 사용 해 야 한다.(일치 할 때 반환 값 이 0 일 수 있 기 때 문 입 니 다!!)
    진정 으로 사용 할 때 더욱 광범 위 하 게 응용 되 는 것 은 한 페이지 가 자신의 사 이 트 를 통 해 접근 할 수 있 고 다른 사 이 트 를 통 해 이동 해서 들 어 갈 수 없다 는 것 이다.이 때 strpos 함수 의 인자 2 의 내용 만 수정 하고 자신의 사이트 의 디 렉 터 리 이름 으로 바 꿉 니 다.다른 접근 을 걸 러 낼 수 있 습 니 다.

좋은 웹페이지 즐겨찾기