如何防止在源代码中显示img标记

时间:2012-08-06 00:03:09

标签: php html

如何防止在源代码中显示以下代码。

img标记代码

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

源代码

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

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

感谢

4 个答案:

答案 0 :(得分:1)

我认为你想要这样的东西,使用base64编码将图像提交到html文件:

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

答案 1 :(得分:0)

您可以使用代理,即使用实际加载所需图像的PHP页面。例如,你可以这样:

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

然后my_proxy.php页面会使用img参数实际加载您想要的图片。

答案 2 :(得分:0)

我不知道如何真正隐藏路径,但您可以使用css至少让用户通过一些研究来查找图像的文件路径。将您的图像放在div中并为该div提供背景图像,如此

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

在css中:

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

这也很不错,因为用户将无法在浏览器中拖动您的图像。

答案 3 :(得分:0)

我的最后一个解决方案:)

代码有安全漏洞,如果它是一个好的解决方案,我将编辑我的帖子并修复这些安全漏洞。没试过代码。但是为了工作,浏览器必须支持会话cookie,而不是完美的解决方案。用户可以通过嗅探器或浏览器右键单击获取图像。完美加密它是不可能的。 (您也可以使用ajax post实现javscript解密)

我预先在页面中包含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."\" />";
?>