Explication détaillée d'exemples de méthodes pour empêcher les hotlinking en PHP

墨辰丷
Libérer: 2023-03-26 18:14:02
original
1776 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 se référer à

Le. les détails sont les suivants :

$_SERVER['HTTP_REFERER'] statut d'acquisition

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

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 avec 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 ] )<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 la chaîne $ meule 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 pour comprendre le principe

Généralement, en configurant le serveur pour empêcher les hotlinking, comme l'accès à la configuration nginx

(gif|jpg|jpeg|png|bmp|swf) et la liste blanche d'autres fichiers

Le une configuration spécifique peut être recherchée sur Baidu

Recommandations associées :

NginxAnti-hotlinking et contrôle d'accès Nginx et configuration php d'analyse Nginx

Comment implémenter PHPAnti-hotlinkingExplication détaillée

php crack Anti-hotlinking

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
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!