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

PHP에서 핫링크를 방지하는 방법의 예에 대한 자세한 설명

墨辰丷
墨辰丷원래의
2018-05-19 09:24:531782검색

본 글은 주로 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'] 획득 상태는 다음과 같은 경우에만 획득할 수 있는 것이 아닙니다. 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 ] )

$haystack 문자열에서 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>
핫링크 방지 인증코드

<!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) 🎜 및 기타 파일의 허용 목록 🎜🎜과 같은 핫링크 방지 🎜🎜🎜🎜특정 구성은 Baidu🎜🎜🎜🎜에서 검색할 수 있습니다. 관련 권장 사항: 🎜🎜 🎜Nginx🎜Anti-hotlinking🎜및 Nginx 액세스 제어 및 Nginx 구문 분석 PHP 구성🎜🎜🎜🎜🎜PHP 구현 방법🎜anti-hotlink🎜자세한 설명🎜🎜🎜🎜🎜php crack🎜anti-hotlink🎜🎜🎜 🎜🎜🎜🎜 🎜🎜🎜

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

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