php - Comment empêcher la visualisation des images d'un site Web
黄舟
黄舟 2017-05-16 13:08:02
0
11
1270

Créez un site Web, téléchargez une image à un certain emplacement sur le serveur, puis accédez directement à l'image via un lien. Cela signifie que lorsque d'autres personnes obtiennent le lien, ils peuvent directement saisir le chemin absolu dans le navigateur pour le voir. . Comment peut-on l’éviter ?

黄舟
黄舟

人生最曼妙的风景,竟是内心的淡定与从容!

répondre à tous(11)
伊谢尔伦

L'affiche peut essayer le stockage cloud de Youpaiyun, qui dispose d'un Token anti-sangsue pour résoudre le problème que vous avez mentionné. Cet article est fourni pour vous aider à comprendre l'anti-sangsue de Token.

Article recommandé : Explication détaillée de Token anti-sangsue

某草草

Rénovez le serveur d'images afin que le dossier d'images ne soit pas directement exposé au monde extérieur. Configurez un service proxy HTTP sur le serveur d'images. L'URL pour accéder à l'image doit avoir un paramètre de jeton légal pour autoriser l'accès, tel que http://www.imgserver.com/test.jpg?t=xT5112XabseFg0,

.
  • Le paramètre t est généré par l'algorithme de cryptage que vous avez défini vous-même, et il contient l'heure de création de ce paramètre.

  • Une fois que le serveur a reçu cette demande, il déchiffre le jeton et obtient l'horodatage à l'intérieur. S'il a été créé dans les 10 secondes (vous pouvez définir la période de validité souhaitée), il renvoie les informations de l'image, sinon l'accès est refusé.

Un tel lien d'image a la notion de période de validité. Lorsque vous l'utilisez, vous pouvez charger l'image avec les paramètres légaux et l'afficher normalement à l'utilisateur. A ce moment, l'utilisateur copie l'adresse de l'image et y accède directement dans le navigateur. Il est probable que la période de validité soit expirée et ne puisse naturellement pas être ouverte.

De plus, il existe une méthode plus simple pour empêcher le hotlinking : (bien sûr, elle peut également être utilisée en combinaison avec la méthode ci-dessus)

Déterminez les informations de référence envoyées par la requête http. Si elles ne correspondent pas au nom de domaine de votre propre site Web ou sont vides (c'est-à-dire que la demande d'image n'est pas initiée sur votre site Web), alors l'accès n'est pas autorisé.

習慣沉默

1. Le moyen le plus stupide est de crypter le nom du fichier image, ce qui ne peut pas empêcher le vol du lien
2 Utilisez base64 pour charger l'image
3. Accès en dehors du serveur de méthode de configuration du middleware

.
阿神

Recherchez la protection des liens hypertextes d'image, il y a trop de choses à dire à cet égard.

黄舟

Ce type de demande est mieux résolu avec la technologie anti-hotlinking d'image.

曾经蜡笔没有小新

Vous pouvez essayer la fonction de stockage d'objets de la plateforme cloud. Alibaba Cloud et Qiniu les ont tous deux. Les autorisations de téléchargement et de téléchargement sont séparées, ou il existe également des fonctions relativement traditionnelles telles que l'anti-sangsue.

我想大声告诉你

Comprenezthinkphp5, pourquoi met-il le fichier d'entrée dans l'annuaire public ?

Parce que cela peut garantir que les ressources de votre projet, telles que les images, ne sont pas directement accessibles par le navigateur et ne sont accessibles que via un fichier d'entrée unique index.php, de sorte que vos images ou certains fichiers de code ne soient pas directement accessibles. !

Vous pouvez suivre cette idée et définir les autorisations d'accès afin que les ressources d'images ne soient accessibles que via le fichier d'entrée

为情所困

Les photos sont téléchargées pour que les gens puissent les voir. Je suppose que vous voulez la société antivol. Lorsque vous activez la connexion antivol, vous pouvez généralement vérifier le référent et choisir de désactiver le référent vide. Bien entendu, nous devons absolument nous prémunir contre le vol. Vous pouvez utiliser des méthodes telles que ne pas divulguer la véritable adresse ou ajouter un jeton.

phpcn_u1582

Si le serveur http que vous utilisez est apache, alors créez un nouveau .htaccess dans le répertoire image et écrivez le code suivant :

<ifmodule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_REFERER} !^$ [NC]
RewriteCond %{HTTP_REFERER} !abc.com [NC]
RewriteRule .*\.(jpg|png)$ http://localhost/ [R,NC,L]
</ifmodule>

Le principe est d'utiliser la fonction de réécriture d'Apache pour déterminer si le référent vient d'abc.com, et sinon, de passer à localhost.
Si l'image est accessible directement, il n'y a pas de référent. Si elle est référencée à partir d'autres sites Web, le référent est le nom de domaine de l'autre site Web. L'accès n'est pas autorisé, ce qui peut avoir pour effet de protéger l'image et d'économiser du trafic.

我想大声告诉你

Je veux juste dire, pourquoi ne pas le mettre sur le serveur ! Mettez-le simplement en place et regardez ! C'est quoi l'anti-hotlinking, c'est assez bon pour empêcher les débutants !

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal