2012-08-06 151 views
-1

如何防止顯示下面的代碼在源代碼中的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

回答

0

您可以使用代理,這是使用PHP網頁,其中實際加載想要的圖像。例如,你可以有這樣的:

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

,然後my_proxy.php頁面將實際加載要使用img參數的圖像。

1

我想你想這樣的事情,提交圖片的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

0

我不知道的方式,真正隱藏路徑,但您可以使用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

0

從我的最後的解決方案:)

代碼的安全漏洞,如果你一個好的解決方案,我將修改我的職位和修復這些安全漏洞。沒有嘗試過的代碼。但爲了工作,瀏覽器必須支持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."\" />"; 
?>