Как скрыть исходный IP-адрес img? - PullRequest
0 голосов
/ 17 октября 2019

У меня есть ярлык img, который вставляет путь к изображению моего публичного сервера и показывает его пользователям:

<img src="http://13.43.68.1:8000/img/gen/trafiic.png">

, но это угроза безопасности, поскольку пользователи могут получить мой исходный сервер изображений (13.43.68.1).

Итак, есть ли способ, позволяющий пользователям не получить IP? например, кешировать данные изображения, просто показать кэшированные данные img как src.


Edit-01

Я нахожусь под image.tpl, умным шаблоном PHP:

<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>

в этом случае,как спрятать src IP?

Ответы [ 3 ]

1 голос
/ 17 октября 2019

Я бы сказал, что ваш IP не является уязвимым. Вы можете получить IP-адрес любого сервера, независимо от того, поддерживается ли он именем хоста или нет. Я бы порекомендовал приобрести доменное имя (или сопоставить поддомен существующего домена) и указать его, используя запись A, на IP-адрес вашего сервера изображений.

После этого вы сможете получить доступ к изображениям, перейдянапример, http://fakedomain.com:8000/img/gen/trafiic.png.

Хотя вы можете конвертировать все свои изображения в base64 и выводить их таким образом, исходный код будет расти - лучше сохранять отдельные запросы:)

Альтернативы:

  • используйте посредника, такого как Cloudflare, чтобы предотвратить раскрытие вашего IP-адреса
  • base64 - но не рекомендовали бы это дорого при загрузке страницы (но тогда это зависит от ваших потребностей)
  • используйте скрипт для генерации и разгрузки ваших графиков в где-нибудь, например, Amazon S3, и загрузки оттуда.
0 голосов
/ 17 октября 2019

вы можете использовать это решение для преобразования вашего изображения в base64 и декодирования base64 как src вместо использования url

0 голосов
/ 17 октября 2019

Если источник дает вам URL изображения, вы можете получить содержимое URL и закодировать его в base64. Проверьте код ниже:

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

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

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