1. 程式人生 > >Nginx詳解十三:Nginx場景實踐篇之防盜鏈

Nginx詳解十三:Nginx場景實踐篇之防盜鏈

目的 請求 var valid 檢查 server ring 重啟 ogl

防盜鏈:

目的:防止資源被盜用

防盜鏈設置思路

首要方式:區別哪些請求是非正常的用戶請求

基於http_refer防盜鏈配置模塊(判斷refer(上一步的鏈接)信息是否為允許訪問的網站)

配置語法:valid_refer none | bloked | server_names | string ...;
默認狀態:-
配置方法:server、location

確認之前配的timg.jpg還在/opt/app/code/images下面

技術分享圖片

技術分享圖片

技術分享圖片

編輯一個html,上傳到/opt/app/code下面

<html>
<head>
<meta charset="utf-8">

<title>防盜鏈</title>
</head>
<body style="background-color:red;">
<img src="http://192.168.1.141/timg.jpg"/>
</body>
</html>

技術分享圖片

reload一下,再請求

技術分享圖片

技術分享圖片

技術分享圖片

把access.log打開再刷新一下網頁:tail -f /var/log/nginx/access.log

技術分享圖片

技術分享圖片

配置允許過來的情況

在location裏面加上:

valid_referers none bloched 192.168.1.141;

if ($invalid_referer){
return 403;
}

技術分享圖片

技術分享圖片

檢查配置並重啟

nginx -tc /etc/nginx/nginx.conf
nginx -s reload -c /etc/nginx/nginx.conf

技術分享圖片

用curl請求一下,這裏由於請求timg.jpg會把圖片底層打印出來,沒必要,我們只需要請求的頭部,所以加一個“-I”

技術分享圖片

試一下從百度跳轉過去,失敗

技術分享圖片

把跳轉前的地址改為配置裏面允許的地址,成功

技術分享圖片

這種配置方法,不止可以匹配ip,還可以匹配域名

如匹配google:valid_referers none bloched 192.168.1.141 ~ /google\./;

Nginx詳解十三:Nginx場景實踐篇之防盜鏈