如何防止显示源代码

问题描述:

如何防止显示下面的代码在源代码中的img标签。如何防止显示源代码

img标签代码

echo'<img src="jal.gif" alt="Smiley face" height="42" width="42" />'; 

源代码

<img alt"Smiley face" src="http://www.myweb.com/jal.gif"> 

其实我不想显示用户图像路径。

感谢

+0

这有什么做用PHP ... – weltschmerz 2012-08-06 00:04:22

+0

这是对一些安全原因?你意识到不可能从用户那里隐藏它​​,对吧?浏览器工具,代理,数据包嗅探器... – Brad 2012-08-06 00:05:50

您可以使用代理,这是使用PHP网页,其中实际加载想要的图像。例如,你可以有这样的:

<img src="my_proxy.php?img=jal.gif" alt="Smiley face" height="42" width="42" /> 

,然后my_proxy.php页面将实际加载要使用img参数的图像。

我想你想这样的事情,提交图片的HTML文件,用base64编码:

<img alt="Smiley face" src="data:image/jpeg;base64,<?php echo base64_encode(file_get_contents("jal.gif")); ?>" /> 
+0

其工作正常,但问题是,它增加了页面的大小....因为我有一个页面各处20个图像.... – Fou 2012-08-06 00:17:44

我不知道的方式,真正隐藏路径,但您可以使用CSS至少让用户通过一些研究来查找图像的文件路径。将一个div内部图像,并给予该div背景图像,像这样

<div id="imgdiv"></div> 

在CSS:

#imgdiv{ 
    background-image: url('http://www.myweb.com/jal.gif'); 
} 

这也是不错的,因为用户将不能够拖动您的图像客场浏览器。

+0

很抱歉,但以何种方式解决这“隐藏”开用户具有查看的CSS源的事实的路径? – 2012-08-06 00:08:57

+0

正如我所说的,它肯定不会隐藏路径 - 只要使其更复杂一点。 – weltschmerz 2012-08-06 00:11:01

从我的最后的解决方案:)

代码的安全漏洞,如果你一个好的解决方案,我将修改我的职位和修复这些安全漏洞。没有尝试过的代码。但为了工作,浏览器必须支持Cookie会话,并且它不是完美的解决方案。用户可以通过嗅探器或浏览器右击获取图像。完美的加密是不可能的。 (可以实现javscript解密也与阿贾克斯后)

我preassume包含在网页session_start()

showimage.php

<?php 
    session_start(); 
    header("Cotent-Type: image/jpeg"); 
    readfile($_SESSION["files"][$_REQUEST["id"]]); 
?> 

的index.php

<?php 
    session_start(); 
    $i=rand(); 
    $_SESSION["files"][$i]="cat.jpg"; 
    echo "<img src=\"showimage.php?id=".$id."\" />"; 
?>