溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Nginx中跨域訪問場(chǎng)景配置和防盜鏈的示例分析

發(fā)布時(shí)間:2021-08-20 14:20:37 來源:億速云 閱讀:139 作者:小新 欄目:服務(wù)器

這篇文章主要介紹了Nginx中跨域訪問場(chǎng)景配置和防盜鏈的示例分析,具有一定借鑒價(jià)值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

跨域訪問控制

跨域訪問

Nginx中跨域訪問場(chǎng)景配置和防盜鏈的示例分析

為什么瀏覽器禁止跨域訪問

不安全,容易出現(xiàn)CSRF攻擊!

Nginx中跨域訪問場(chǎng)景配置和防盜鏈的示例分析

如果黑客控制的網(wǎng)站B在響應(yīng)頭里添加了讓客戶端去訪問網(wǎng)站A的惡意信息,就會(huì)出現(xiàn)CSRF攻擊

Nginx如何配置跨域訪問

add_header語法

  • Syntax:add_header name value [always];

  • Default:—

  • Context:http, server, location, if in location

語法解釋:

  • 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”頭字段中具有無效值的請(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語法

  • Syntax: referer_hash_bucket_size size;  

  • Default: referer_hash_bucket_size 64;

  • Context: server, location

語法解釋:

referer_hash_bucket_size size;表示設(shè)置有效引用散列表的存儲(chǔ)區(qū)大小。

referer_hash_max_size 語法

  • Syntax: referer_hash_max_size size;

  • Default: referer_hash_max_size 2048;

  • Context: server, location

語法解釋:

referer_hash_max_size size;表示設(shè)置有效引用者哈希表的最大大小。

valid_referers語法

  • Syntax: valid_referers none | blocked | server_names | string ...;

  • Default: —

  • Context: server, location

語法解釋:

  • 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 目錄下)

<html>
<head>
  <meta charset="utf-8">
  <title>imooc1</title>
</head>
<body ><br data-filtered="filtered">   <h2>張彪</h2>
  <img src="http://192.168.1.112/wei.png"/>
</body>
</html>

Nginx中跨域訪問場(chǎng)景配置和防盜鏈的示例分析

配置防盜鏈如果不是從 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

Nginx中跨域訪問場(chǎng)景配置和防盜鏈的示例分析

訪問

http://www.zhangbiao.com/test_refer.html

Nginx中跨域訪問場(chǎng)景配置和防盜鏈的示例分析

允許其他網(wǎng)站訪問自己網(wǎng)站資源配置

Nginx中跨域訪問場(chǎng)景配置和防盜鏈的示例分析

感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“Nginx中跨域訪問場(chǎng)景配置和防盜鏈的示例分析”這篇文章對(duì)大家有幫助,同時(shí)也希望大家多多支持億速云,關(guān)注億速云行業(yè)資訊頻道,更多相關(guān)知識(shí)等著你來學(xué)習(xí)!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI