2015-01-07 107 views
0

我在我的頁面中有圖像,我想通過直接查看它的URL來保護圖像。 基本上,我想隱藏/加密圖像源。在瀏覽器中保護圖像php

<img src="www.mywebsite.com/media/1.jpg" alt="customer_id" /> 

我已禁用右鍵點擊圖像的某種JavaScript。但是,仍然可以從頁面的源代碼獲取圖像源。

我也嘗試在圖像中添加這些屬性。

ondrag="return false" 
ondragstart="return false" 
oncontextmenu="return false" 
galleryimg="no" 
onmousedown="return false" 

有什麼辦法可以解決這個問題嗎? 謝謝。

enter image description here

+0

隱藏圖像源的目的是什麼? – mopo922

+2

不是。如果你使用的是HTML,那麼源代碼就可以在他們的計算機上找到並可以查看。充其量,你可以從*新手*用戶中隱藏它。 –

+2

http://stackoverflow.com/q/18870937/具體爲接受的答案。在服務器端執行。 JS總是可以被禁用。 –

回答

0

有沒有辦法做到這一點。考慮一下,你的用戶可以打開瀏覽器的工具面板,查看通過網絡發送的URL。

如果您確實想保護您的源圖像,請將它們全部路由到單個URL端點(例如http:/mysite.com/img-gateway),並讓(可能已加密的)POST數據確定將回。當然,用戶可以隨時保存圖像並在另一個URL上重新配置,但至少會停止熱鏈接。或者,使用某種類型的服務器擴展,如果不存在特定的cookie,將使用403 Forbidden進行響應。

3

不可能有效地將它隱藏在HTML中 - 但我認爲你害怕有人會看到不是他的圖像。 我的解決方案:移動圖像,是不是從網絡訪問,例如,如果現在他們在

/home/mywebsite.com/public_html/media/ 

它們移動到目錄:

/home/mywebsite.com/media/ 

,並通過PHP爲他們服務:

if($userIsLogged && $imageBelongsToUser) { //this is of cource pseudo code - only showing the idea 

header("Content-type: image/jpeg"); 
$image=imagecreatefromjpeg('/home/mywebsite.com/media/1.jpg'); 
imagejpeg($image); 

}else{ 
echo "error"; 
} 

當然你必須以某種方式存儲關於pair用戶/圖像的信息。