Nginx配置Referer模塊防止圖片盜鏈


nginx的http_referer模塊默認應該都有,就不說怎么安裝了。

用到這個是因為一個網站沒有用cdn,但是又要考慮圖片防止盜鏈的問題,完全防止是不可能的,只是加個難度而已,並且還可以偽裝referer,但既然用到了還是簡單記錄下吧。

有2種規則:

一、允許為空訪問

  location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|flv|mp4|ico)$ {
            valid_referers none blocked server_name *.jingxialai.com www.jingxialai.com/shop/ ~\.google\.;
            if ($invalid_referer) {
               return 403;
               #rewrite ^.*$ https://www.google.com;
            }
  }

none:為空沒有referer也可以直接訪問
blocked:referer沒有值也可以訪問;請求頭Referer字段不為空(即存在Referer),但是值被代理或者防火牆刪除了,這些值不以“http://”或“https://”開頭,通俗點說就是允許“http://”或"https//"以外的請求。比如Referer為http://www.baidu.com則會攔截,若是Referer為www.baidu.com或wss://www.baidu.com則不會攔截
server_name:nginx配置的域名,有的可能是server_names
www.jingxialai.com/shop/:從這個頁面的請求都可以訪問
*.jingxialai.com:域名正則可以訪問
~.google.:只要識別到有google正則都可以訪問
二、為空不允許訪問

  location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|flv|mp4|ico)$ {
            valid_referers *.jingxialai.com;
            if ($invalid_referer) {
               return 403;
               #rewrite ^.*$ https://www.google.com;
            }
  }

就是把none blocked刪了,這樣就不能在瀏覽器打開這張圖片了。

referer的防盜鏈很簡單,也很容易破解,如果你網站要求不嚴格,用這個也可以了,如果很嚴格再繼續看看別的。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM