隐藏图像标签的src字符串

本文关键字:src 字符串 标签 图像 隐藏 | 更新日期: 2023-09-27 18:08:17

例如:

<img src="http://gateway.com/Providername/NameOfTheSupplier/RequestedImg.jpg" />

现在一些客户抱怨他们的客户可以在url中看到公司名称。因为要改变我使用的网关的结构需要做很多工作,所以我寻找另一种方法来实现它。

是否有一种方法可以为客户端隐藏src ?例如,使用base64或其他可以解密客户端的加密?

隐藏图像标签的src字符串

简单的回答:不。长话短说:不。技术上的回答:浏览器显示的所有内容都需要以一种方式翻译成人类可读的文本。你可以混淆服务器端。

*)人类可读的还包括非常短的名称,如http://gateway.com/P/N/R.jpg

可以使用数据uri,但这需要您下载图像,转换为base64并嵌入到页面(或CSS)中。

这将使有效载荷增加约34%。


另一种方法是使用CSS样式化页面,将图像url嵌入到CSS中。这往往不是动态的(尽管它可以是),但是,任何知道一点web技术的人仍然可以查看CSS和url。以这种方式使用图片当然也不是语义上的,而且会以意想不到的方式破坏你的页面,这意味着你需要更多的努力来让那些应该"正常工作"的东西工作。

您可以将整个图像转换为base64代码。为此,可以使用大量可用的服务。

举个例子:

将任意图像转换为base64字符串

<a href="data:text/html;charset=utf-8;base64,PCFET0NUWVBFIEhUTUw%2BDQo8aHRtbCBs
YW5nPSJlbiI%2BDQogPGhlYWQ%2BDQogIDx0aXRsZT5QcmV0dHkgR2xvd2luZyBMaW5lczwvd   
Gl0bGU%2BDQogPC9oZWFkPg0KIDxib2R5Pg0KPGNhbnZhcyB3aWR0aD0iODAwIiBoZWlnaHQ
9IjQ1MCI%2BPC9jY..."</a>

您可以试试这段代码

$('img').filter(function(index){return $(this).attr('src')==='';}).hide();

可以使用Handler吗?这样你就可以隐藏URL,如果你想,你可以用base64发送图像,或者只写字节流作为响应。

我认为这应该工作,你也可以通过改变一段代码来控制图像路径。

查看此链接:http://www.codeproject.com/Articles/34084/Generic-Image-Handler-Using-IHttpHandler

谢谢。