>  기사  >  백엔드 개발  >  PHP에서 안티 리칭을 구현하는 방법

PHP에서 안티 리칭을 구현하는 방법

不言
不言원래의
2018-06-08 09:23:186632검색

이 글은 주로 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

Note

$_SERVER['HTTP_REFERER']를 항상 획득할 수 있는 것은 아닙니다. only 다음과 같은 상황에서만 얻을 수 있습니다.

1. HTTP_REFERER를 얻을 수 있는 상황은 다음과 같습니다.


1. cfba799dd43fce78ec3e9e3d200b7e482.직접 사용 제출 또는 d0ccfa24f23dbd6c7c76b6dcdc6cfa63를 사용하여 양식을 제출하세요(POST 또는 GET)3. Jscript(POST 또는 GET)를 사용하여 제출된 양식 2. 다음과 같은 상황이 발생하지 않습니다. 1. 즐겨찾기 링크 3. Jscript의 location.href 또는 location.replace()4를 사용하세요. 브라우저에 주소를 직접 입력하세요 5. c37f721670919360921ccb8afc9eb479
2. "홈" 또는 맞춤 주소를 클릭하세요
6. 707ab8d2056c6e1f516d2bf3c9988ff9 또는 d2eacb9d552db150e90498bcd18784f7 리디렉션

7. XML을 사용하여 주소 strrpos를 로드합니다. 함수 설명:

strrpos - 대상 문자열에서 지정된 문자열이 마지막으로 나타나는 위치를 계산합니다.

Explanation

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

문자열 반환 $ haystack in needle 숫자 위치의 마지막 발생입니다.

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

$needle

needle이 문자열이 아닌 경우 정수로 변환되어 문자의 순차적인 값으로 처리됩니다.

반환값

바늘이 존재하는 위치를 반환합니다. 찾을 수 없으면 FALSE를 반환합니다. 🎜🎜핫링크 감지 코드: asd.php🎜
<?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");
}
?>
🎜warning.php🎜
<html>
<b>倒链</b>
</html>
🎜Anti-hotlink 검증 코드🎜
<!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 구성과 같은 서버 anti-hotlinking을 구성하여 액세스합니다🎜🎜 🎜(gif|jpg |jpeg|png|bmp|swf) 🎜다른 파일의 화이트리스트🎜🎜구체적인 구성은 바이두에서 검색하실 수 있습니다🎜🎜위는 이 글의 전체 내용입니다. 더 많은 관련 내용을 보시려면 PHP 중국어 사이트를 주목해주세요! 🎜🎜관련 추천: 🎜🎜🎜php 다중 인터페이스 구현 방법, php 구현🎜🎜🎜🎜🎜🎜

위 내용은 PHP에서 안티 리칭을 구현하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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