天天看點

Nginx基礎配置之防盜鍊

實作的結果就是,隻有指定的域名才能通路,除此之外全部拒絕通路,這樣做就可以保證用戶端通路自己的網站拿到自己的資源,而不是通路了别的網站拿到自己的資源

1.準備檔案

建立出一個簡單的html檔案,找一個圖檔(這裡是java小圖示)

hello.html,路徑是/usr/www/snowman/hello.html,内容是一句話加上引用圖檔

<html>
<body>
<p>noly snowman be allow</p>
<img src='logo.jpg' width="100px" height="100px" />
</body>
</html>
           

logo.jpg,路徑是/usr/www/snowman/logo.jpg

Nginx基礎配置之防盜鍊
2.配置 nginx.conf讓資源可以被擷取
Nginx基礎配置之防盜鍊

注:這樣配置後輸入192.168.66.64/snowman/hello.html進行通路,hello.html檔案通過第一個location擷取,logo.jpg通過第二個location擷取

3.用SwichHosts給IP綁定域名
Nginx基礎配置之防盜鍊

這樣設定之後,無論是通路www.snowman.cn還是www.abc.cn都是通路的192.168.66.64就是虛拟機

用兩個域名(域名/snowman/hello.html)通路hello.html都可以成功擷取文字和顯示圖檔

www.snowman.cn

Nginx基礎配置之防盜鍊

www.abc.cn

Nginx基礎配置之防盜鍊

确定能正常通路後進行防盜鍊設定

4.增加防盜鍊設定

加入至指定location 即可實作

#防盜鍊
valid_referers none blocked www.snowman.cn;
if ($invalid_referer) {
return 403;
}
           
Nginx基礎配置之防盜鍊

第一行代碼的意思是允許改域名通路,if語句的意思是不合法的域名都傳回403

(記得reload哦)

這樣一來,www.snowman.cn/snowman/hello.html 依然可以成功看到文字和圖檔,因為www.snowman.cn是合法的

Nginx基礎配置之防盜鍊

而www.abc.cn/snowman/hello.html 隻能看到文字(hello.html)但圖檔加載不出來,因為通路hello.html走的location沒有限制,通路圖檔的location中www.abc.cn是非法的

Nginx基礎配置之防盜鍊

還是能加載出圖檔可能是因為緩存原因,刷掉就好了

繼續閱讀