Maison  >  Article  >  développement back-end  >  Comment interdire les hotlinks externes en php

Comment interdire les hotlinks externes en php

藏色散人
藏色散人original
2020-08-27 09:25:312954parcourir

Comment interdire les hotlinking externes en PHP : recherchez et ouvrez d'abord le fichier ".htaccess" ; puis ajoutez le contenu "RewriteEngine on RewriteCond %{HTTP_REFERER} !^$ [NC]" au fichier et enfin enregistrez-le ; ce Ce fichier fera l'affaire.

Comment interdire les hotlinks externes en php

Recommandé : "Tutoriel vidéo PHP"

Méthodes PHP pour empêcher les hotlinks

La technologie anti-hotlinking est déjà très courante. Certains sites Web n'aiment pas que leurs images soient directement copiées et utilisées par d'autres sites Web, ils utilisent donc la technologie anti-hotlinking de cette manière, lorsque d'autres copient et utilisent directement le site Web. images, les images seront Selon les paramètres du programme, des mots tels que anti-hotlinking ne seront pas affichés ou affichés.

En utilisant la technologie anti-hotlinking, cela peut non seulement empêcher le vol de vos photos, mais également économiser le trafic de téléchargement d'images sur votre site. Je pense que c'est plutôt une bonne chose. environnement? Dans l'environnement PHP, nous savons que le serveur Apache est généralement utilisé, regardons donc principalement la méthode Apache anti-hotlink. En fait, le même principe est utilisé dans IIS.

Anti-hotlinking Apache :

La plupart des hôtes virtuels sont Apache, le paramètre anti-hotlinking le plus pratique consiste donc à utiliser le fichier .htaccess. Il existe de nombreuses façons de rechercher sur Internet, j'ai donc résumé les méthodes absolument simples à utiliser. Ajoutez le code suivant au fichier .htaccess et modifiez-le.

RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$ [NC]
RewriteCond %{HTTP_REFERER} !60ie.net [NC]
RewriteCond %{HTTP_REFERER} !youdao.com [NC]
RewriteCond %{HTTP_REFERER} !zhuaxia.com [NC]
RewriteCond %{HTTP_REFERER} !twitter.com [NC]
RewriteCond %{HTTP_REFERER} !facebook.com [NC]
RewriteCond %{HTTP_REFERER} !xianguo.com [NC]
RewriteCond %{HTTP_REFERER} !google.cn [NC]
RewriteCond %{HTTP_REFERER} !google.com [NC]
RewriteCond %{HTTP_REFERER} !google.com.tw [NC]
RewriteCond %{HTTP_REFERER} !google.com.sg [NC]
RewriteCond %{HTTP_REFERER} !google.com.hk [NC]
RewriteCond %{HTTP_REFERER} !bloglines.com [NC]
RewriteCond %{HTTP_REFERER} !soso.com [NC]
RewriteCond %{HTTP_REFERER} !mail.qq.com [NC]
RewriteCond %{HTTP_REFERER} !cn.bing.com [NC]
RewriteCond %{HTTP_REFERER} !image.baidu.com [NC]
RewriteCond %{HTTP_REFERER} !feedburner.com [NC]
RewriteCond %{HTTP_REFERER} !feedsky.com [NC]
RewriteRule .(png|jpg|gif)$ [R,NC,L]

Explication du code :

Regardez d'abord la dernière ligne. J'ai une protection anti-sangsue pour les fichiers png, jpg et gif sur le site Web une fois que les images de mon site Web sont en dehors du site. La liste blanche ci-dessus apparaît sur le site Web, toutes les images de la dernière ligne de code sont affichées.

Anti-hotlinking Nginx :

Nginx ne prend pas en charge .htaccess, et c'est un peu difficile à configurer. Tout d'abord, ouvrez le fichier /usr/local/nginx/conf/nginx.conf avec un éditeur de texte (si vous utilisez vhost, allez sur vhost pour trouver le fichier de conf correspondant

), et faites correspondre le code suivant Juste à l'intérieur de la section server{} Notez que je ne parle pas de copie, mais de correspondance.

location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
{
expires 30d;
valid_referers none blocked *.ilucong.com *.youdao.com *.zhuaxia.com *.xianguo.com *.google.cn *.google.com *.google.com.tw *.google.com.sg *.google.com.hk
*.bloglines.com image.soso.com cn.bing.com image.baidu.com *.feedburner.com *.feedsky.com;
if ($invalid_referer) {
rewrite ^/ ;
#return 404;
}
}

Remarque : essayez de ne pas utiliser le Bloc-notes fourni avec Windows pour modifier, car des lignes erratiques peuvent apparaître après l'édition, redémarrez le service Ngnix pour prendre effet

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