>  기사  >  백엔드 개발  >  PHP를 사용하여 핫링크를 방지하는 방법에 대한 자세한 설명

PHP를 사용하여 핫링크를 방지하는 방법에 대한 자세한 설명

巴扎黑
巴扎黑원래의
2017-09-08 15:17:421481검색

이 글은 주로 PHP의 안티 핫링크 방법을 소개하고, PHP의 안티 핫링크와 관련된 기술과 구체적인 구현 기법을 예제 형식으로 분석합니다. 도움이 필요한 친구들은 참고할 수 있습니다

본 글의 예시는 PHP의 핫링크 방지 방법을 설명합니다. 참고할 수 있도록 모든 사람과 공유하세요. 세부 정보는 다음과 같습니다:

$_SERVER['HTTP_REFERER'] 획득 상태 $_SERVER['HTTP_REFERER']的获取情况

注意 $_SERVER['HTTP_REFERER'] 并不一定总能获取到,只有在以下情况下才能获取到:

一、能够取到HTTP_REFERER的情况为以下几种:

1.直接用cfba799dd43fce78ec3e9e3d200b7e48
2.用Submit或764a0a970dbc75966e734f5ea597d024提交的表单(POST or GET)
3.使用Jscript提交的表单(POST or GET)

二、不能取到的情况有以下几种:

1.从收藏夹链接
2.单击”主页”或者自定义的地址
3.利用Jscript的location.href or location.replace()
4.在浏览器直接输入地址
5.c37f721670919360921ccb8afc9eb479
6.707ab8d2056c6e1f516d2bf3c9988ff9或d2eacb9d552db150e90498bcd18784f7转向
7.用XML加载地址

strrpos函数讲解:

strrpos — 计算指定字符串在目标字符串中最后一次出现的位置

说明

int strrpos ( string $haystack , string $needle [, int $offset = 0 ] )<br>

Note $_SERVER['HTTP_REFERER']를 항상 획득할 수 있는 것은 아닙니다. only 다음과 같은 상황에서만 얻을 수 있습니다. 1. HTTP_REFERER를 얻을 수 있는 상황은 다음과 같습니다. 1. cfba799dd43fce78ec3e9e3d200b7e483. Jscript(POST 또는 GET)를 사용하여 제출된 양식 2. 다음과 같은 상황이 발생하지 않습니다.
2.직접 사용 제출 또는 d0ccfa24f23dbd6c7c76b6dcdc6cfa63를 사용하여 양식을 제출하세요(POST 또는 GET)

1. 즐겨찾기 링크

2. "홈" 또는 맞춤 주소를 클릭하세요

3. Jscript의 location.href 또는 location.replace()

4를 사용하세요. 브라우저에 주소를 직접 입력하세요

5. c37f721670919360921ccb8afc9eb479

6. 707ab8d2056c6e1f516d2bf3c9988ff9 또는 d2eacb9d552db150e90498bcd18784f7 리디렉션

7. XML을 사용하여 주소

strrpos를 로드합니다. 함수 설명:

strrpos — 대상 문자열


Explanation

int strrpos에서 지정된 문자열이 마지막으로 나타나는 위치를 계산합니다. ( string $ haystack , string $needle [, int $offset = 0 ] )<br>$haystack 문자열에서 needle이 마지막으로 나타나는 숫자 위치를 반환합니다.

$haystack이 문자열에서 찾으세요.

🎜🎜🎜$needle🎜🎜needle이 문자열이 아닌 경우 정수로 변환되어 문자의 순차적인 값으로 처리됩니다. 🎜🎜🎜🎜🎜🎜반환값🎜🎜🎜바늘이 존재하는 위치를 반환합니다. 찾을 수 없으면 FALSE를 반환합니다. HOTLINK DETECTION CODE : ASD.PHP🎜🎜🎜🎜R
<?php
//防盗链技术
//先判断是否获取到 $_SERVER[&#39;HTTP_REFERER&#39;] 变量
if(isset($_SERVER[&#39;HTTP_REFERER&#39;])){
  //判断$_SERVER[&#39;HTTP_REFERER&#39;]是不是以http://localhost/开始的
  if(strpos($_SERVER[&#39;HTTP_REFERER&#39;],"http://localhost")==0){
    echo &#39;<img src="a.png"/>&#39;;
  }
  else{
    header("Location:warning.php");//跳转页面到warning.php
    //echo $_SERVER["HTTP_REFERER"];
  }
}
else {
  header("Location:warning.php");
}
?>
SWARNING.PHP🎜🎜🎜🎜R
<html>
<b>倒链</b>
</html>
ATI-HOTLINK VERIFICE CODEINGIONION CODE🎜🎜🎜🎜R
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<a href="http://localhost/wml/asd.php" rel="external nofollow" >验证防盗链</a>
</body>
</html>
🎜 위의 것은 원칙을 이해하는 것입니다. nginx와 같은 서버 구성 🎜🎜🎜(gif|jpg|jpeg|png|bmp|swf) 🎜 및 기타 파일🎜에 액세스하기 위한 화이트리스트 구성

위 내용은 PHP를 사용하여 핫링크를 방지하는 방법에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.