Nginx核心要領七:referer防盜鏈

nginx的referer防盜鏈模塊,利用http請求頭中的 referer 信息進行校驗,判斷該請求是否爲合法請求,是則放行,否則可以自定義返回一個結果,可防止大部分網址引用自己的資源,但是referer是可以僞造的,僞造後可以繼續訪問資源

nginx模塊ngx_http_referer_module通常用於阻擋來源非法的域名請求,默認編譯進nginx,可以通過–without-http_referer_module禁用

先搭建Nginx靜態資源服務,放幾個圖片,然後用CSDN外鏈這個圖片,判斷搭建的靜態資源是否已經開啓了防盜鏈功能
配置文件內容如下:

server {
    listen       80;
    server_name  zy.csxiuneng.com;
    #允許跨域訪問
    #add_header 'Access-Control-Allow-Origin' '*';
    location / {
       #開啓referers防盜鏈,只能 *.csxiuneng.com 能訪問該location下的資源
       valid_referers none blocked server_names *.csxiuneng.com;
       if ($invalid_referer) {
         #盜鏈時返回403
         return 403;
       }
       alias zhuyu/;
       autoindex on;
    }
}

invalid_referer變量值,允許訪問時值爲空,不允許訪問時值爲1

在nginx/zhuyu/img 下放了幾張圖片,因爲開啓了 autoindex on ,訪問鏈接時會以目錄的形式返回,可看到img下面有哪些文件
在這裏插入圖片描述
再訪問這張圖片,可以正常訪問
在這裏插入圖片描述
現在用CSDN寫文章,插入圖片,填寫該地址 http://zy.csxiuneng.com/img/1801.jpg,再瀏覽看是否已防止了CSDN的圖片盜鏈
[外鏈圖片轉存失敗(img-WQPNaQga-1566791119189)(http://zy.csxiuneng.com/img/1801.jpg)]

通過F12開發者工具可以看到1801.jpg以403響應的,說明防盜鏈成功
在這裏插入圖片描述
在這裏插入圖片描述

更多

#爲了加速訪問,可以對referer模塊設置共享內存,通過如下指令設置
syntax: referer_hash_bucket_size size;
default: referer_hash_bucket_size 64;
context: server,location

syntax: referer_hash_max_size size;
default: referer_hash_max_size 2048;
context: server,location
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章