Maison  >  Article  >  développement back-end  >  Méthodes courantes pour empêcher les hotlinking en php

Méthodes courantes pour empêcher les hotlinking en php

怪我咯
怪我咯original
2017-07-13 10:26:251401parcourir

L'Internet d'aujourd'hui compte de nombreux sites Web de collecte, et de nombreux sites Web aiment créer des liens/voler des images à partir d'autres sites Web. Cela porte non seulement atteinte aux droits du réseau, mais entraîne également une consommation importante du site Web de liens volés. du trafic, provoquant une forte pression sur le serveur. Cet article présente deux méthodes pour empêcher le vol d'images/hotlinking en PHP. Les amis dans le besoin peuvent s'y référer.

À quoi sert la protection des liens hypertextes d'image ? Elle empêche les autres sites Web de voler vos images et de gaspiller votre précieux trafic. Cet article vous présente trois façons d'empêcher le vol d'images/hotlinking en PHP

1 Anti-hotlinking simple, le code est le suivant :

$ADMIN[defaulturl] = "http:/www.php.cn/404.htm";//盗链返回的地址 
$okaysites = array("http:/www.php.cn/","http:/www.php.cn"); //白名单 
$ADMIN[url_1] = "http:/www.php.cn/temp/download/";//下载地点1 
$ADMIN[url_2] = "";//下载地点2,以此类推 

$reffer = $HTTP_REFERER; 
if($reffer) { 
$yes = 0; 
while(list($domain, $subarray) = each($okaysites)) { 
if (ereg($subarray,"$reffer")) { 
$yes = 1; 
} 
} 
$theu = "url"."_"."$site"; 
if ($ADMIN[$theu] AND $yes == 1) { 
header("Location: $ADMIN[$theu]/$file"); 
} else { 
header("Location: $ADMIN[defaulturl]"); 
} 
} else { 
header("Location: $ADMIN[defaulturl]"); 
} 

?>

Utilisation. : Le code ci-dessus est enregistré sous dao4.php
Par exemple, le validatecode.rar que j'ai utilisé pour les tests se trouve sur mon site http://www.php.cn/temp/download
Le code suivant est. utilisé pour représenter le lien de téléchargement

CODE : [Copier dans le presse-papiers]
Nom du fichier?site=1&file=file

2. Anti-hotlinking du serveur
Anti-hotlinking IIS. un logiciel est utilisé, vous pouvez le rechercher, il en existe de nombreux en ligne.

3. Méthode anti-hotlinking pour les téléchargements de logiciels
Le code est le suivant :

//放置下载软件的根目录相对于当前脚本目录的相对目录 
$fileRelPath = "../../software"; 
//例外允许连接的网址,注意:自身域名不需要填入,设定为肯定可以下载, 
// 空字符串("")表示直接输入网址下载的情况 
$excludeReferArr = array(http:/www.php.cn", "php.cn"); 

chdir($fileRelPath); 
$fileRootPath = getcwd() ."/"; 

$filePath=$HTTP_GET_VARS["file"]; 

$url=parse_url($_SERVER["HTTP_REFERER"]); 

if($url[host]!=$_SERVER["HTTP_HOST"] && !in_array($referHost, $excludeReferArr)){ 
?>

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