Maison > développement back-end > tutoriel php > Exemple de comment implémenter l'anti-hotlinking en PHP

Exemple de comment implémenter l'anti-hotlinking en PHP

黄舟
Libérer: 2023-03-14 13:52:02
original
2213 Les gens l'ont consulté

Cet article présente principalement la méthode d'anti-hotlinking en PHP, et analyse les technologies associées et les techniques de mise en œuvre spécifiques impliquées dans l'anti-hotlinking PHP sous forme d'exemples. Les amis dans le besoin peuvent s'y référer

Les exemples de cet article décrivent comment empêcher les hotlinking en PHP. Partagez-le avec tout le monde pour votre référence. Les détails sont les suivants :

$_SERVER['HTTP_REFERER']état d'acquisition

Notez que $_SERVER['HTTP_REFERER'] peut ne pas toujours être obtenu. Il ne peut être obtenu que dans les circonstances suivantes :

1. Les circonstances dans lesquelles HTTP_REFERER peut être obtenu sont les suivantes :

1. Utilisez directement
2. Formulaire soumis avec Soumettre ou (POST ou GET)
3. Formulaires soumis en utilisant Jscript (POST ou GET)

2. Les situations suivantes ne peuvent pas être obtenues :

1. Lien des favoris
2. Cliquez sur "Accueil" ou sur l'adresse personnalisée
3. Utilisez location.href ou location.replace()
4 de Jscript. Saisissez l'adresse directement dans le navigateur
5. <%Response.Redirect%>
6. <%Response.AddHeader%> ou rediriger vers
7. Utilisez XML pour charger l'adresse

strrpos Explication de la fonction :

strrpos — Calcule la position de la dernière occurrence de la chaîne spécifiée dans la chaîne cible

Explication

int strrpos ( string $haystack , string $needle [, int $offset = 0 ] )<code>int strrpos ( string $haystack , string $needle [, int $offset = 0 ] )<br>Renvoie la position numérique de la dernière occurrence de l'aiguille dans chaîne $botte de foin.

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

Valeur de retour

Renvoie la position où l'aiguille existe. S'il n'est pas trouvé, renvoie FALSE.

Code de détection de lien chaud : 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");
}
?>
Copier après la connexion

warning.php


<html>
<b>倒链</b>
</html>
Copier après la connexion

Code de vérification 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>
Copier après la connexion

Ce qui précède est le principe de compréhension

Généralement, le code de protection anti-hotlink est configuré en configurant le serveur, tel que l'accès à la configuration nginx

(gif|jpg|jpeg|png|bmp|swf) Liste blanche des autres fichiers

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal