php - 如何防止網站圖片被瀏覽
黄舟
黄舟 2017-05-16 13:08:02
0
11
1228

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

黄舟
黄舟

人生最曼妙的风景,竟是内心的淡定与从容!

全部回覆 (11)
伊谢尔伦

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

文章推薦:Token 防盜鏈詳解

    某草草

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

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

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

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

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

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

      習慣沉默

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

        阿神

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

          黄舟

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

            曾经蜡笔没有小新

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

              我想大声告诉你

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

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

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

                为情所困

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

                  phpcn_u1582

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

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

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

                    我想大声告诉你

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

                      最新下載
                      更多>
                      網站特效
                      網站源碼
                      網站素材
                      前端模板
                      關於我們 免責聲明 Sitemap
                      PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!