2011-04-23 244 views
1

我可以隱藏PHP頁面中的真實圖像路徑或使用某種加密技術[因此觀衆無法看到img src]?
[ 我創建了一個社交網絡,用戶可以共享圖像或不共享圖像! 的圖像存儲沒有在數據庫中。] ]保護圖像路徑 - PHP

我已經看到顯示的圖像具有這樣的數據[雖然我張貼的VB.NET代碼]

<data name="TrayIcon.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> 
<value> 
    AAABAAEAICD/AAAAAACoCAAAFgAAACgAAAAgAAAAQAAAAAEACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 
    AABnZEsAjnMTAKmFFAC7lBsAdWEhABstOgAfNE0ARlt0AG6DmABziJsAN0NTAEpRVABWW1wAS0ktAElj 
    iwBPbpEAQ1yBADlPcwBdc4gAPT9CAEY6EABUeaoAWIO4AGWCqQBdd5sAPVV7AHWPlQB3jZ8Ae5GjACs0 
    PwAyJgUANTk6AFRphABbicEAZJLJAGGPxABjhroAdZClAHWIjgBne4wAZm9rABQWFQAwNDEANkpjAG2Y 
    ................ 
</value> 
</data> 
+1

保存在非公共路徑是您更好的選擇。然後,您可以在用戶請求時對圖像進行流式處理 – Andre 2011-04-23 06:09:10

+1

將其隱藏並不是真的有可能。一旦用戶看到它,它就是公開的。 – Blender 2011-04-23 06:16:37

回答

2

您可以製作一個PHP頁面,它可以獲取一些參數,然後處理它。 就像頁面http://www.yoursite.com/pic.php?token=xxxxxxxxxxxx一樣,在這裏您可以處理令牌,執行一些角色驗證和會話驗證,然後使用header()函數將圖片推送到瀏覽器,以便人們可以下載它,但不直接查看圖片路徑。希望這對你有所幫助。

+0

好主意Mic: ) – Sourav 2011-04-23 06:20:42

+0

但是,只需要在本地保存圖片即可,但 – JohnP 2011-04-23 06:24:11

+0

用戶將在此情況下看到圖片的路徑。 – 2011-04-23 07:00:47

1

這不是一些PHP頁面可以建立,因爲這些攻擊媒介是完全保護您的圖片來自下載的系統,:

頁面

-Interception服務器和客戶端之間的

-Screenshots(即Wireshark的)

在瀏覽器緩存中查找

+0

我知道1,3是不可阻擋的! :(但是我可以隱藏img的src路徑嗎? – Sourav 2011-04-23 06:12:00

+0

@Sourav:沒什麼意思,截圖很簡單,找到一個'img'的'src'對用戶來說可能更困難 – icktoofay 2011-04-23 06:15:15

2

隱藏圖像src路徑意味着什麼?如果你想用戶的瀏覽器顯示圖像,他們肯定必須訪問這些數據,對吧?所以你必須告訴他們地址(除非你用base64或其他東西把圖像嵌入到頁面中,但這不是更好)。但是你不控制用戶的瀏覽器......也許它將圖像存儲在文件中,如緩存?或者,也許用戶量身定製它做他們想要的?

讓事情變得更難的一種可能的保護措施是生成一個唯一的圖像鏈接,它只適用於一個請求,假設如果用戶查看頁面的源代碼並嘗試使用此鏈接,那麼它就不再有效了。但這不是絕對的保護。

沒有確定的方法去做你想要的;你只能讓它變得更加困難,但是你只能希望你的用戶不夠聰明來規避保護,因爲總會有辦法。

+0

好的答案+1 :)但是,如果你能告訴如何在Base64中對它進行編碼,將不勝感激? – Sourav 2011-04-23 06:26:06

+1

http://a3nm.net/blog/fuel_efficiency.html頁面的兩幅圖像是base64編碼的SVG圖像。 (是的,那是我的博客 - 對自我推銷感到抱歉,但我只是想到了這個例子。)不,這可能不是一個推薦的做法;這很方便,因爲使用了後端,但它很醜,我不以此爲榮。 – a3nm 2011-04-23 06:29:10

+0

酷車!看起來像marc跑車:) – Sourav 2011-04-23 06:30:53