網站防盜鏈
阿新 • • 發佈:2021-12-08
盜鏈的概念
盜鏈是指在自己的頁面上展示一些並不在自己伺服器上的內容
獲取別人伺服器上的資源地址,繞過別人的資源展示頁面,直接在自己的頁面上向終端使用者提供內容
常見的是小站盜用大站的圖片、音樂、視訊、軟體等資源
通過盜鏈的方法可以減輕自己伺服器的負擔,因為真實的空間和流量均來自別人的伺服器
防盜鏈概念
防止別人通過一些技術手段繞過本站的資源展示頁面,盜用本站的資源,讓繞開本站資源展示頁面的資源連結失效
可以大大減輕伺服器及頻寬的壓力
防盜鏈的工作原理
1.通過Referer或者簽名,網站可以檢測目標網站訪問的來源網頁,如果是資原始檔,則可以跟蹤到顯示它的網頁地址
一旦檢測到來源不是本站即進行阻止或者返回指定的頁面
2.通過計算簽名的方式,來判斷請求是否合法,如果合法則顯示,否則返回錯誤資訊
// Referer
// Nginx模組 ngx_http_referer_module 用於阻擋來源非法的域名請求
// Nginx指令valid_referers , 全域性變數$invalid_referer
valid_referers none | blocked | server_names | string… ;
// none :“Referer” 來源頭部為空的情況
// blocked :“Referer” 來源頭部不為空,但是裡面的值被代理或者防火牆刪除了,這些值都不以http://或者https://開頭
// server_names : “Referer” 來源頭部包含當前server_names
傳統的防盜鏈遇到的問題: 偽造Refer ,可以使用加密簽名解決
加密簽名,使用第三方模組HttpAccessKeyModule實現Nginx防盜鏈
accesskey on | off 模組開關
accesskey_hashmehtod md5 | sha-1 簽名加密方式
accesskey_arg GET引數名稱
accesskey_signature 加密的值