Cet après-midi, des amis dans le groupe et dans le cercle d'amis ont signalé que les photos dans le lit photo Gitee ne peuvent pas être ouvertes
Dans cet article, j'utilise https://gitee.com/Topcvan/js-notes-img/raw/master/%E5%AE%8F%E4%BB%BB%E5%8A%A1%E9%98%9F%E5%88%97.png
cette image comme exemple pour reproduire l'incident.
chaîne antivol
Je me suis dit, ça doit être l'ajout soudain de la chaîne antivol, regardons le principe de la chaîne antivol :
Referer fait référence à l'adresse de la page source de la page de requête en cours, qui est utilisée pour déterminer la source d'accès de la page en cours. La chaîne antivol image remplace l'image par l'image du panneau d'interdiction en jugeant Referer
s'il s'agit du site web cible.
Referer est en fait
referrer
une faute d'orthographe du mot
Par exemple, dans cet événement gitee, lorsque toutes les images du site gitee sont chargées, le navigateur ajoutera par défaut le dernier en-tête de requête à l'image : referer: https://gitee.com/
. Sur d'autres sites Web, si le champ d'en-tête de la demande de référence n'est pas le site Web de gitee, une image d'espace réservé sera renvoyée.
Cependant, en général, l'image anti-hotlinking peut être ouverte directement dans le navigateur, car elle ne portera pas le champ d'en-tête de referer
requête lorsqu'elle sera ouverte directement dans le navigateur, et la configuration anti-leech le permettra.
Si tel est le cas, si vous êtes sur un site Web personnel, vous pouvez configurer toutes les demandes d'images sans champs d'en-tête de demande via la politiqueReferer
de référence pour contourner les paramètres anti-leech .
<meta name="referrer" content="no-referrer">
复制代码
À cette fin, j'ai spécialement créé deux pages Web et les ai comparées en fonction des images d'URL mdnice qui ont été configurées avec l'anti-leech :
- Ajout de cet en-tête pour contourner avec succès les paramètres anti-leech : vercel-api.shanyue.vercel.app/referrer
- Si cet en-tête n'est pas ajouté, l'image est bloquée par 403 : vercel-api.shanyue.vercel.app/referrer/fo…
Ah oui, quand vous ouvrez deux URL à ce moment là, pensez à désactiver le cache dans la console du navigateur : (PS : ajoutez un Vary : referer pour interdire ce genre de problèmes)
Cependant, cela ne fonctionne pas pour le gîte !
mesures anti-sangsues du gîte
Cependant, les mesures anti-sangsues fixées par gitee sont plus strictes :
Les photos en gîte subiront également un traitement anti-sangsue si elles ne portent pas le référent
Pour cela, j'ai fait une expérience contrôlée basée sur le referer
terrain .
Demandez directement l'adresse de l'image via cURL , rien n'est retourné :
$ curl 'https://gitee.com/Topcvan/js-notes-img/raw/master/%E5%AE%8F%E4%BB%BB%E5%8A%A1%E9%98%9F%E5%88%97.png' \
--compressed
复制代码
Demandez directement l'adresse de l'image via cURL, et portez le referer
champ , il y a du contenu et retournez correctement :
$ curl 'https://gitee.com/Topcvan/js-notes-img/raw/master/%E5%AE%8F%E4%BB%BB%E5%8A%A1%E9%98%9F%E5%88%97.png' \
-H 'Referer: https://gitee.com/' \
--compressed
Warning: Binary output can mess up your terminal. Use "--output -" to tell
Warning: curl to output it to your terminal anyway, or consider "--output
Warning: <FILE>" to save to a file.
复制代码
Capture d'écran ci-dessous :
Remplacez directement le src d'un img sur le site officiel par l'adresse personnelle de l'image du gîte, et ouvrez-le normalement :
évaluer
Il va de soi que l'anti-sangsue vise également à éviter le grand nombre de détournements d'images et d'autres ressources sur le site Web, ce qui entraîne des frais de serveur énormes. Mais gitee a une meilleure approche :
- Préavis d'un mois à l'avance, transition en douceur et ne causera pas une si grande répercussion
- La politique anti-leech est trop stricte et les images ne peuvent pas être ouvertes directement dans le navigateur
Même comme les pépites, ajoutez votre propre filigrane dans le coin inférieur droit !