Heim >Backend-Entwicklung >PHP-Tutorial >So implementieren Sie Anti-Leeching in PHP

So implementieren Sie Anti-Leeching in PHP

不言
不言Original
2018-06-08 09:23:186687Durchsuche

In diesem Artikel wird hauptsächlich die Anti-Hotlinking-Methode in PHP vorgestellt und die damit verbundenen Technologien und spezifischen Implementierungstechniken in PHP-Anti-Hotlinking anhand von Beispielen analysiert

Die Beispiele in diesem Artikel beschreiben, wie man Hotlinking in PHP verhindert. Teilen Sie es allen als Referenz mit. Die Details lauten wie folgt:

$_SERVER['HTTP_REFERER'] Erwerbsstatus

Beachten Sie, dass $_SERVER['HTTP_REFERER'] möglicherweise nicht immer der Fall ist Es kann nur unter den folgenden Umständen abgerufen werden:

1. Die Umstände, unter denen HTTP_REFERER abgerufen werden kann, sind wie folgt:

1. Verwenden Sie direkt cfba799dd43fce78ec3e9e3d200b7e48
2. Formular mit Absenden oder 764a0a970dbc75966e734f5ea597d024 (POST oder GET) übermittelt
3. Mit Jscript (POST oder GET) eingereichte Formulare

2. Die folgenden Situationen können nicht abgerufen werden:

1. Link aus Favoriten
2. Klicken Sie auf „Home“ oder die benutzerdefinierte Adresse
3. Verwenden Sie location.href oder location.replace() von Jscript
4. Geben Sie die Adresse direkt in den Browser ein
5. c37f721670919360921ccb8afc9eb479
6. 707ab8d2056c6e1f516d2bf3c9988ff9 oder d2eacb9d552db150e90498bcd18784f7 Adresse mit XML laden

Funktionserklärung: strrpos

strrpos – Berechnet die Position des letzten Vorkommens der angegebenen Zeichenfolge in der Zielzeichenfolge

Erklärung

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

Gibt die numerische Position des letzten Vorkommens von Needle in der Zeichenfolge $haystack zurück.


$haystack 在此字符串中进行查找。
$needle 如果 needle不是一个字符串,它将被转换为整型并被视为字符的顺序值。

Rückgabewert

Gibt die Position zurück, an der sich die Nadel befindet. Wenn nicht gefunden, wird FALSE zurückgegeben.

Hotlink-Erkennungscode: 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-Bestätigungscode

<!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>

Das Obige ist das Verständnisprinzip

Im Allgemeinen können Sie den Server so konfigurieren, dass Hotlinking verhindert wird, z. B. die Nginx-Konfiguration, um auf die Whitelist von Dateien wie

(gif|jpg|jpeg|png|bmp|swf) Speziell Die Konfiguration kann auf Baidu durchsucht werden

Das Obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, dass er für das Studium aller hilfreich ist zur chinesischen PHP-Website!

Verwandte Empfehlungen:

So implementieren Sie mehrere Schnittstellen in PHP, PHP-Implementierung

Das obige ist der detaillierte Inhalt vonSo implementieren Sie Anti-Leeching in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn