Maison > développement back-end > tutoriel php > Comment implémenter l'anti-sangsue en PHP

Comment implémenter l'anti-sangsue en PHP

不言
Libérer: 2023-03-30 16:06:02
original
6690 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 compétences 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. Charger l'adresse à l'aide de XML

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 ] )
Copier après la connexion

Renvoie la position numérique de la dernière occurrence de Needle dans la chaîne $haystack.

$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 Hotlink : 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 Comprendre le principe

configurer généralement le serveur pour empêcher les hotlinking, comme la configuration nginx pour accéder à la liste blanche de

(gif|jpg|jpeg|png|bmp|swf) et autres fichiers

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

Ce qui précède est l'intégralité du contenu de cet article. J'espère qu'il sera utile à l'étude de chacun. Pour un contenu plus connexe, veuillez faire attention au site Web PHP chinois !

Recommandations associées :

Comment implémenter plusieurs interfaces en php, implémentation de 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