Maison > développement back-end > tutoriel php > Explication détaillée de la façon d'empêcher les hotlinking en PHP

Explication détaillée de la façon d'empêcher les hotlinking en PHP

小云云
Libérer: 2023-03-19 20:02:02
original
2980 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 en PHP sous forme d'exemples. J'espère que les amis dans le besoin pourront s'y référer. aider tout le monde.

$_SERVER['HTTP_REFERER'] statut d'acquisition

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

1. Les situations 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. Charger l'adresse à l'aide de XML

Explication de la fonction : strrpos

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 ] )<p></p>Renvoie la position numérique de la dernière occurrence de l'aiguille dans la chaîne $ meule de foin. int strrpos ( string $haystack , string $needle [, int $offset = 0 ] )<br>
$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 d'autres fichiers

La configuration spécifique peut être recherchée sur Baidu

Recommandations associées :

Crackage anti-hotlink PHP

Explication détaillée de la méthode anti-hotlink PHP

Code anti-hotlink php


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!

Étiquettes associées:
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