Maison >développement back-end >tutoriel php >Méthode PHP pour empêcher le hotlinking des images de blogs et de forums

Méthode PHP pour empêcher le hotlinking des images de blogs et de forums

墨辰丷
墨辰丷original
2018-05-31 16:51:122141parcourir

Cet article présente principalement la méthode permettant d'empêcher le hotlinking de blogs et d'images de forum en PHP, impliquant des techniques d'exploitation associées consistant à combiner des chaînes PHP avec des sessions pour déterminer les images. Les amis dans le besoin peuvent se référer à

Il existe de nombreuses façons. pour empêcher le hotlinking, je vais parler ici de ma compréhension du hotlinking. C'est le même principe que d'empêcher la soumission à distance.

Introduisez d'abord une fonction

uniqid(string);
//这个函数的作用,是在你添加的字符串后面随即添加一个独一无二ID字符串。

Si vous n'êtes toujours pas inquiet, vous pouvez ajouter la chaîne de sortie par cette fonction Utilisez la fonction SHA1() pour le cryptage.

De cette façon, nous obtenons une chaîne unique que vous seul connaissez, utilisée pour le visa numérique. Voyons ensuite comment détecter ce visa numérique.

function has($string)
{
if(!isset($string) || $string != $_SESSION["uniqid"])
{
exit;
}
}
//上面这个函数的意思是如果不存在字符串$string或者字符串不等于$_SESSION["uniqid"];
//则不执行下面的部分。

La fonction de détection du visa numérique sera écrite plus tard. Que faire ensuite. Nous savons tous que les pages Web sont exécutées de haut en bas. Générez simplement le visa numérique en haut et vérifiez-le dans la fonction ci-dessous.

session_start(); //开去session功能
$uniqid = uniqid("dwz");
$_SESSION["uniqid"] = $uniqid;
//执行代码
has($uniqid); //进行数字验证

La méthode la plus simple ci-dessus pour empêcher les hotlinks est terminée. Revenons au sujet, comment empêcher le hotlinking d'images ?

C'est une réponse plus simple. Lorsque nous examinons le code source des images de sites Web, nous constatons qu’il existe deux chemins pour stocker les images : l’un est un chemin relatif et l’autre est un chemin absolu.

Chemin relatif signifie : la photo est sur votre serveur.

Je pense que le chemin signifie : l'image peut être sur votre serveur ou non.

Si ce n'est pas sur votre serveur, il y a une adresse URL ou une adresse IP. C’est la clé de notre prévention du vol.

$_SERVER['HTTP_HOST'];
//这样就可以获取服务器的url。但这个可以直接用代码修改.

Obtenez l'URL de la demande d'envoi de cette façon, vous pouvez la vérifier si c'est votre URL, si ce n'est pas le cas. , il ne sera pas exécuté. C'est le même principe !

Résumé : Ce qui précède représente l'intégralité du contenu de cet article, j'espère qu'il sera utile à l'étude de chacun.

Recommandations associées :

Liste complète des commandes Redis sous php

Connaissance des variables de référence PHP Explication détaillée

Modèle de conception de couplage 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!

Déclaration:
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