Nginx實現圖片防盜鏈(referer指令)
阿新 • • 發佈:2017-08-15
ret 而是 mod reg 當前 部分 什麽是 表達 百度 什麽是圖片盜鏈
referer指令通過檢測訪問圖片的來源,來做出一些控制。 圖片訪問的來源
- 每張圖片在瀏覽器中都有對應的圖片地址,在瀏覽器中輸入這個地址是可以直接拿到圖片。
- 圖片盜鏈,就是盜用者在他的站上需要顯示我們的圖片,他沒有把圖片拿下來,放到他的服務器上,
- 而是直接就用我們的,圖片地址,來請求到我們的服務器來拿圖片,流量產生在我們這邊。
referer指令通過檢測訪問圖片的來源,來做出一些控制。 圖片訪問的來源
- 通過谷歌/百度訪問
- 通過瀏覽器直接訪問
- 本站點的訪問
- 來自非法的域名訪問
- nginx 模塊 ngx_http_referer_module 通常用於阻擋來源非法的域名請求.
- 但我們應該牢記,偽裝 Referer 頭部是非常簡單的事情,所以這個模塊只能用於阻止大部分非法請求.
- 我們應該記住,有些合法的請求是不會帶 referer 來源頭部的,所以有時候不要拒絕來源頭部(referer)為空的請求
- 以上所有來至 ttlsa.com 和域名中包含 google 和 baidu 的站點都可以訪問到當前站點的圖片,
- 如果來源域名不在這個列表中,那麽$invalid_referer 等於 1,在 if 語句中返回一個 403 給用戶,
- 這樣用戶便會看到一個 403 的頁面,如果使用下面的 rewrite,那麽盜鏈的圖片都會顯示 403.jpg。
- 如果用戶直接在瀏覽器輸入你的圖片地址,那麽圖片顯示正常,因為它符合 none 這個規則.
- none
- “Referer” 來源頭部為空的情況
- blocked
- “Referer”來源頭部不為空,但是裏面的值被代理或者防火墻刪除了,這些值都不以 http://或者 https://開頭.
- server_names
- “Referer”來源頭部包含當前的 server_names(當前域名)
- regular expression
- 正則表達式,~表示排除 https://或 http://開頭的字符串
Nginx實現圖片防盜鏈(referer指令)