如何防止在源代码中显示以下代码。
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 :(得分: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."\" />";
?>