PHP 안티 핫링크 구현

WBOY
풀어 주다: 2016-07-29 08:50:53
원래의
1182명이 탐색했습니다.

때때로 우리 웹사이트를 방문하는 사용자가 특정 링크나 페이지를 통해서만 우리 웹사이트에 들어갈 수 있기를 바라는 경우가 있습니다. 이 경우 안티 핫링크 기술을 구현해야 합니다. 이는 http 프로토콜에서 리퍼러 콘텐츠 필터링을 사용합니다.

예를 들어 우리 지역에 웹 페이지가 있는데 경로는 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_two.php는 별도로 접근할 수 있습니다. 그러나 fdl_two.php에 대한 액세스를 필터링하려면 fdl_one.php의 하이퍼링크를 통해서만 fdl_two.php를 입력할 수 있습니다. fdl_two.php의 내용은 다음과 같습니다.
<?php
	if(isset($_SERVER[&#39;HTTP_REFERER&#39;])){
		if(strpos($_SERVER[&#39;HTTP_REFERER&#39;],"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의 반환 값을 언급할 가치가 있습니다. 매개변수 1 문자열에 매개변수 2 문자열이 존재하는 시작 위치를 반환합니다. 매개변수 2가 없으면 FALSE를 반환합니다. 따라서 사용 시에는 일치 여부를 먼저 판단해야 하며, 이때 반환값의 종류와 값을 엄격히 제어하고 === 기호를 사용해야 한다. (일치하면 반환값이 0이 될 수도 있으니까요!!)

실제 사용에서 더 널리 사용되는 것은 특정 페이지는 자신의 사이트를 통해서는 접속이 가능하지만, 다른 사이트를 통해서는 접속이 불가능하다는 것입니다. 이때 strpos 함수의 매개변수 2의 내용을 자신의 사이트 디렉터리 이름으로 수정하기만 하면 됩니다. 다른 방문을 필터링할 수 있습니다.


위 내용은 안티 핫링크와 PHP 콘텐츠를 포함하여 PHP에서의 안티 핫링크 구현을 소개합니다. PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되길 바랍니다.

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!