Php 如何隐藏img源IP?

Php 如何隐藏img源IP?,php,html,image,smarty,imgur,Php,Html,Image,Smarty,Imgur,我有一个img标签嵌入了我的公共服务器的图像路径,并将图像显示给用户: <img src="http://13.43.68.1:8000/img/gen/trafiic.png"> 在这种情况下,如何隐藏src IP 如果源代码将图像URL提供给您,您可以获取URL内容并在base64中对其进行编码。检查以下代码: $imgURL = 'https://via.placeholder.com/350x150'; $imageData = file_get_contents($img

我有一个img标签嵌入了我的公共服务器的图像路径,并将图像显示给用户:

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

在这种情况下,如何隐藏src IP

如果源代码将图像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.'">';
$imgURL='1https://via.placeholder.com/350x150';
$imageData=文件获取内容($imgURL);
$imgSrc='数据:图像/png;base64'。base64_编码($imageData);
返回“”;

您可以使用将图像转换为base64,并将base64解码为src,而不是使用url

我想说,您的IP暴露并不是一个特别的安全漏洞。您可以获取任何服务器的IP地址,无论其是否由主机名支持。我建议您购买一个域名(或映射现有域的子域),并使用a记录将其指向您的映像服务器IP地址

然后,您可以通过进入
http://fakedomain.com:8000/img/gen/trafiic.png
例如

虽然您可以将所有图像转换为base64并以这种方式输出,但您的源代码将会增长—最好保留单独的请求:)

备选方案:

  • 使用Cloudflare等中间人来防止暴露您的IP地址
  • base64-但不推荐,因为它的页面加载成本很高(但这取决于您的需要)
  • 使用脚本生成图形并将其卸载到类似AmazonS3的地方,然后从那里加载

将其更改为base64 ImageURL您可以使用“数据URI方案”吗?您可以提供更多信息吗?例如,您向我们显示了img标记,其中包含要隐藏的url,但您是否有权访问服务器配置或寻找客户端解决方案?如果您这样做,您可以使用指向主服务器的假url,并使用规则代理所有映像请求。是的,
数据URI方案
可以解决此问题,但如果源仅提供url映像,该如何处理?如果该服务器的IP地址是机密的,则不要在其上托管公共数据。
$imgURL = 'https://via.placeholder.com/350x150';
$imageData = file_get_contents($imgURL);

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

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