搜尋

首頁  >  問答  >  主體

php - 如何防止網站圖片被瀏覽

做一個網站,上傳圖片到伺服器某個位置,然後透過連結可以直接存取這個圖片,就是說別人拿到這個連結就可以直接在瀏覽器輸入絕對路徑看到。怎麼樣可以防止呢?

黄舟黄舟2753 天前1278

全部回覆(11)我來回復

  • 伊谢尔伦

    伊谢尔伦2017-05-16 13:10:02

    樓主可以試試下又拍雲的雲端存儲,有Token防盜鏈解決你說的問題。提供文章方便你了解Token防盜鏈。

    文章推薦:Token 防盜鏈詳解

    回覆
    0
  • 某草草

    某草草2017-05-16 13:10:02

    改造圖片伺服器,圖片資料夾不直接對外暴露。 在圖片伺服器上架設一個Http代理服務,訪問圖片的url中必須有一個合法的token參數才允許訪問,例如 http://www.imgserver.com/test.jpg?t=xT5112XabseFg0,

    • 其中t參數時你自己設定的加密演算法產生的,裡面含有這個參數的創建時間。

    • 伺服器接收到這個請求後,解密token,拿到裡面的時間戳,如果是10秒之內創建的(你可以設定你自己希望的有效期),就返回圖片訊息,否則拒絕訪問。

    這樣一個圖片連結就有了有效期限概念,自己使用時載入有合法t參數的圖片就能正常展示給使用者。用戶此時自己拷貝這個圖片地址在瀏覽器直接訪問,很可能已經過了有效期,自然打不開了。

    此外,還有更簡單的方法防盜鏈:(當然也可以和上面的方法結合用)

    判斷http請求發過來的referer信息,如果不等於你自己的網站域名或者為空(即,該圖片請求不是在你的網站發起的),那麼不允許訪問。

    回覆
    0
  • 習慣沉默

    習慣沉默2017-05-16 13:10:02

    1.最愚蠢的方法就是對圖片檔案名稱進行加密,當係也防止不了link被盜用
    2.使用base64方式載入圖片
    3.在中間器設定方式伺服器以外存取

    回覆
    0
  • 阿神

    阿神2017-05-16 13:10:02

    搜一下圖片防盜鏈吧,這方面要說的太多了。

    回覆
    0
  • 黄舟

    黄舟2017-05-16 13:10:02

    這種需求還是用圖片防盜鏈技術解決比較好。

    回覆
    0
  • 曾经蜡笔没有小新

    曾经蜡笔没有小新2017-05-16 13:10:02

    可以試試雲端平台的物件儲存功能,阿里雲和七牛都有,上傳和下載的權限是分開的,或者也有相對傳統的防盜鏈這樣的功能可以用。

    回覆
    0
  • 我想大声告诉你

    我想大声告诉你2017-05-16 13:10:02

    了解thinkphp5吧,他為什麼要把入口檔案放到public目錄下呢?

    因為這樣可以保證你專案中的資源,例如圖片,不能直接被瀏覽器訪問到,只能透過單一的入口文件 index.php 訪問,這樣你的圖片或某些程式碼檔案就不能被直接存取到了!

    你可以參考這個思路,設定存取權限,只能透過入口文件存取到圖片資源

    回覆
    0
  • 为情所困

    为情所困2017-05-16 13:10:02

    圖片上傳就是給人看的。估計你是想防盜連吧。開啟防盜連,通常判斷referer就能實一, 並選擇禁止空的referer就可以了。當然,要完全防人家盜。可以用不公開真實地址,或加上token等方法。

    回覆
    0
  • phpcn_u1582

    phpcn_u15822017-05-16 13:10:02

    如果你用的http伺服器是apache,那麼在圖片目錄下新建 .htaccess 寫入以下程式碼:

    <ifmodule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{HTTP_REFERER} !^$ [NC]
    RewriteCond %{HTTP_REFERER} !abc.com [NC]
    RewriteRule .*\.(jpg|png)$ http://localhost/ [R,NC,L]
    </ifmodule>

    原理是利用 apache 的 rewrite 功能,判斷 referer 是否是來自 abc.com,如果不是就跳到 localhost。
    如果圖片是直接訪問是沒有 referer 的,如果是從其他網站引用則 referer 是其他網站的域名,都不允許訪問,可以達到保護圖片和節省流量的效果。

    回覆
    0
  • 我想大声告诉你

    我想大声告诉你2017-05-16 13:10:02

    我只想說,要不放到伺服器去!只要放上去,就能看!什麼鬼防盜鏈,防菜鳥還好!

    回覆
    0
  • 取消回覆