Nginx跨域訪問(wèn)場(chǎng)景配置和防盜鏈詳解
跨域訪問(wèn)控制
跨域訪問(wèn)
為什么瀏覽器禁止跨域訪問(wèn)
不安全,容易出現(xiàn)CSRF攻擊!
如果黑客控制的網(wǎng)站B在響應(yīng)頭里添加了讓客戶端去訪問(wèn)網(wǎng)站A的惡意信息,就會(huì)出現(xiàn)CSRF攻擊
Nginx如何配置跨域訪問(wèn)
add_header語(yǔ)法
- Syntax:add_header name value [always];
- Default:—
- Context:http, server, location, if in location
語(yǔ)法解釋:
- add_header name value [always];
- name 表示響應(yīng)頭返回的key
- value 表示響應(yīng)頭返回的key對(duì)應(yīng)的value
- add_header跨域配置
location ~ .*\.(htm|html)$ { add_header Access-Control-Allow-Origin *; add_header Access-Control-Allow-Methods GET,POST,PUT,DELETE,OPTIONS; root /opt/app/code; }
防盜鏈
防盜鏈目的
- 防止資源被盜用。
- 防止非正常用戶訪問(wèn),占用網(wǎng)站資源,影響網(wǎng)站性能,勢(shì)必影響正常用戶訪問(wèn)
基于http_referer防盜鏈配置模塊
ngx_http_referer_module模塊用于阻止對(duì)“Referer”頭字段中具有無(wú)效值的請(qǐng)求訪問(wèn)站點(diǎn)。
舉例
valid_referers none blocked server_names *.example.com example.* www.example.org/galleries/ ~\.google\.; if ($invalid_referer) { return 403; }
referer_hash_bucket_size語(yǔ)法
- Syntax: referer_hash_bucket_size size;
- Default: referer_hash_bucket_size 64;
- Context: server, location
語(yǔ)法解釋:
referer_hash_bucket_size size;表示設(shè)置有效引用散列表的存儲(chǔ)區(qū)大小。
referer_hash_max_size 語(yǔ)法
- Syntax: referer_hash_max_size size;
- Default: referer_hash_max_size 2048;
- Context: server, location
語(yǔ)法解釋:
referer_hash_max_size size;表示設(shè)置有效引用者哈希表的最大大小。
valid_referers語(yǔ)法
- Syntax: valid_referers none | blocked | server_names | string ...;
- Default: —
- Context: server, location
語(yǔ)法解釋:
- valid_referers none | blocked | server_names | string ...;
- none表示請(qǐng)求標(biāo)頭中缺少“Referer”字段;
- blocked表示“Referer”字段出現(xiàn)在請(qǐng)求標(biāo)頭中,但其值已被防火墻或代理服務(wù)器刪除; 這些值是不以“http://”或“https://”開(kāi)頭的字符串;
- server_names 表示“Referer”請(qǐng)求頭字段包含一個(gè)服務(wù)器名稱;
- string 表示定義服務(wù)器名稱和可選的URI前綴。 服務(wù)器名稱的開(kāi)頭或結(jié)尾可以包含“*”。 在檢查期間,“Referer”字段中的服務(wù)器端口被忽略;
防盜鏈小案例
touch test_referer.html (在 /op/app/code 目錄下)
<html> <head> <meta charset="utf-8"> <title>imooc1</title> </head> <body style="background-color:red;"><br data-filtered="filtered"> <h1>張彪</h1> <img src="http://192.168.1.112/wei.png"/> </body> </html>
配置防盜鏈如果不是從 www.zhangbiao.com 域名轉(zhuǎn)來(lái)的就會(huì)報(bào)錯(cuò)
location ~ .*\.(jpg|gif|png)$ { valid_referers none blocked www.zhangbiao.com; if ($invalid_referer) { return 403; } root /opt/app/code/images; } location ~ /test_refer.html { root /opt/app/code; }
訪問(wèn)
http://192.168.1.112/test_refer.html
訪問(wèn)
http://www.zhangbiao.com/test_refer.html
允許其他網(wǎng)站訪問(wèn)自己網(wǎng)站資源配置
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Nginx出現(xiàn)403錯(cuò)誤,應(yīng)該如何解決
這篇文章主要介紹了Nginx出現(xiàn)403錯(cuò)誤,應(yīng)該如何解決?具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-03-03通過(guò)Nginx解決網(wǎng)絡(luò)隔離實(shí)踐記錄詳解
這篇文章主要介紹了通過(guò)Nginx解決網(wǎng)絡(luò)隔離實(shí)踐記錄詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-05-05Keepalived+Nginx+Tomcat 實(shí)現(xiàn)高可用Web集群的示例代碼
這篇文章主要介紹了Keepalived+Nginx+Tomcat 實(shí)現(xiàn)高可用Web集群的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-09-09Nginx防止直接用IP訪問(wèn)Web服務(wù)器的設(shè)置方法
看了很多Nginx的配置,好像都忽略了ip直接訪問(wèn)Web的問(wèn)題,這樣理論上不利于SEO優(yōu)化,所以我們希望可以避免直接用IP訪問(wèn)網(wǎng)站,而是域名訪問(wèn),具體怎么做呢,看下面2012-09-09Nginx實(shí)現(xiàn)灰度發(fā)布的常見(jiàn)方法小結(jié)
Nginx 就像是一個(gè)智能的交通指揮員,它位于用戶請(qǐng)求和后端服務(wù)之間,負(fù)責(zé)對(duì)請(qǐng)求進(jìn)行分發(fā)和管理,在灰度發(fā)布中,Nginx 可以根據(jù)我們?cè)O(shè)定的規(guī)則,這篇文章給大家介紹了Nginx實(shí)現(xiàn)灰度發(fā)布的常見(jiàn)方法小結(jié),需要的朋友可以參考下2024-07-07Nginx正反向代理及負(fù)載均衡等功能實(shí)現(xiàn)配置代碼實(shí)例
這篇文章主要介紹了Nginx正反向代理及負(fù)載均衡等功能實(shí)現(xiàn)配置代碼實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-11-11Nginx代理時(shí)header頭中帶"_"信息丟失問(wèn)題的解決
這篇文章主要給大家介紹了關(guān)于Nginx代理時(shí)header頭中帶"_"信息丟失問(wèn)題的解決方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-02-02lnmp環(huán)境中如何為nginx開(kāi)啟pathinfo
這篇文章主要介紹了lnmp環(huán)境中如何為nginx開(kāi)啟pathinfo的方法,操作很簡(jiǎn)單,需要的朋友可以參考下2015-01-01