-1
votes

Comment caché la source IMG IP?

J'ai une étiquette IMG incorporer une trajectoire d'image du serveur public de mine et afficher l'image aux utilisateurs: xxx pré>

mais c'est un risque de sécurité, car les utilisateurs peuvent obtenir mon serveur source d'image ( 13.43.68.1 code>). p>

Ainsi, est-il une méthode pour laisser les utilisateurs ne peuvent pas obtenir la propriété intellectuelle? Comme cache les données d'image, indiquez simplement les données IMG en cache comme SRC. P>


EDIT-01 strong> p>

Je suis sous le image.tpl code>, modèle Smarty de PHP: P >

<div class="panel-body text-center">
    <h4>Daily</h4>
    <img width="360" src="http://13.43.68.1:8000/img/gen/trafiic.png.php?switch={$switch}&port={$portname}&cycle=-1d"><br><br>
    <h4>Weekly</h4>
    <img width="360" src="http://13.43.68.1:8000/img/gen/trafiic.png.php?switch={$switch}&port={$portname}&cycle=-1w"><br><br>
    <h4>Monthly</h4>
    <img width="360" src="http://13.43.68.1:8000/img/gen/trafiic.png.php?switch={$switch}&port={$portname}&cycle=-1m"><br><br>
</div>


5 commentaires

Changez-le comme URL sur la base64 image


Pouvez-vous utiliser «Schéma URI de données»?


Pouvez-vous fournir plus d'informations? Par exemple, vous nous montrez la balise IMG avec URL que vous souhaitez masquer, mais avez-vous accès à la configuration du serveur ou à la recherche de solution latérale client? Si vous pouvez utiliser une fausse URL qui indique votre serveur principal et votre proxy toutes les demandes d'image avec une règle.


Oui, Schéma URI de données peut résoudre ce problème, mais comment si la source fournit uniquement l'image de l'URL?


Si l'adresse IP de ce serveur est un secret, alors n'hébergez pas de données publiques sur celui-ci .


3 Réponses :


-1
votes

Si la source vous donne l'URL de l'image, vous pouvez obtenir du contenu URL et l'encoder dans la base64. Vérifiez le code ci-dessous:

$imgURL = 'https://via.placeholder.com/350x150';
$imageData = file_get_contents($imgURL);

$imgSrc = 'data:image/png;base64,' . base64_encode($imageData);

return '<img src="'.$imgSrc.'">';


0 commentaires

-1
votes

Vous pouvez utiliser Cette solution pour convertir votre image à base64 et décoder la base64 comme SRC au lieu d'utiliser l'URL


0 commentaires

1
votes

Je dirais que votre adresse IP est exposée n'est pas particulièrement une faille de sécurité. Vous pouvez obtenir l'adresse IP de tout serveur s'il est soutenu par un nom d'hôte ou non. Je vous recommanderais d'acheter un nom de domaine (ou de mapper le sous-domaine d'un domaine existant) et de la diriger à l'aide d'un enregistrement sur votre adresse IP des serveurs d'image.

Vous pourrez alors accéder à vos images en allant à http://fakakain.com:8000/img/gen/trafiic.png par exemple.

Bien que vous puissiez convertir toutes vos images en base64 et les sortir de cette façon, votre code source augmentera - il est préférable de conserver des demandes séparées :)

Alternatives:

  • Utilisez un homme central tel que Cloudflare pour empêcher l'exposition de votre adresse IP
  • base64 - mais ne recommanderait pas comme étant coûteux sur la charge de la page (mais dépend ensuite de vos besoins)
  • Utilisez un script pour générer et décharger vos graphiques à quelque part comme Amazon S3 et en charge de là.

0 commentaires