這篇文章主要介紹了Nginx中跨域訪問場(chǎng)景配置和防盜鏈的示例分析,具有一定借鑒價(jià)值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
創(chuàng)新互聯(lián)公司從2013年成立,先為北流等服務(wù)建站,北流等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為北流企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問題。
跨域訪問控制
跨域訪問
為什么瀏覽器禁止跨域訪問
不安全,容易出現(xiàn)CSRF攻擊!
如果黑客控制的網(wǎng)站B在響應(yīng)頭里添加了讓客戶端去訪問網(wǎng)站A的惡意信息,就會(huì)出現(xiàn)CSRF攻擊
Nginx如何配置跨域訪問
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ǎng)站資源,影響網(wǎng)站性能,勢(shì)必影響正常用戶訪問
基于http_referer防盜鏈配置模塊
ngx_http_referer_module模塊用于阻止對(duì)“Referer”頭字段中具有無(wú)效值的請(qǐng)求訪問站點(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://”開頭的字符串;
server_names 表示“Referer”請(qǐng)求頭字段包含一個(gè)服務(wù)器名稱;
string 表示定義服務(wù)器名稱和可選的URI前綴。 服務(wù)器名稱的開頭或結(jié)尾可以包含“*”。 在檢查期間,“Referer”字段中的服務(wù)器端口被忽略;
防盜鏈小案例
touch test_referer.html (在 /op/app/code 目錄下)
imooc1
張彪
配置防盜鏈如果不是從 www.zhangbiao.com 域名轉(zhuǎn)來的就會(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; }
訪問
http://192.168.1.112/test_refer.html
訪問
http://www.zhangbiao.com/test_refer.html
允許其他網(wǎng)站訪問自己網(wǎng)站資源配置
感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“Nginx中跨域訪問場(chǎng)景配置和防盜鏈的示例分析”這篇文章對(duì)大家有幫助,同時(shí)也希望大家多多支持創(chuàng)新互聯(lián),關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,更多相關(guān)知識(shí)等著你來學(xué)習(xí)!