佳木斯湛栽影视文化发展公司

主頁 > 知識庫 > Nginx跨域訪問場景配置和防盜鏈詳解

Nginx跨域訪問場景配置和防盜鏈詳解

熱門標簽:百度競價點擊價格的計算公式 阿里云 硅谷的囚徒呼叫中心 檢查注冊表項 美圖手機 智能手機 網(wǎng)站建設(shè) 使用U盤裝系統(tǒng)

跨域訪問控制

跨域訪問

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

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

如果黑客控制的網(wǎng)站B在響應(yīng)頭里添加了讓客戶端去訪問網(wǎng)站A的惡意信息,就會出現(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對應(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)站性能,勢必影響正常用戶訪問

基于http_referer防盜鏈配置模塊

ngx_http_referer_module模塊用于阻止對“Referer”頭字段中具有無效值的請求訪問站點。

舉例

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è)置有效引用散列表的存儲區(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表示請求標頭中缺少“Referer”字段;
  • blocked表示“Referer”字段出現(xiàn)在請求標頭中,但其值已被防火墻或代理服務(wù)器刪除; 這些值是不以“http://”或“https://”開頭的字符串;
  • server_names 表示“Referer”請求頭字段包含一個服務(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 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)來的就會報錯

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)站資源配置

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

標簽:湖北 黃山 懷化 賀州 山南 煙臺 通遼 湘潭

巨人網(wǎng)絡(luò)通訊聲明:本文標題《Nginx跨域訪問場景配置和防盜鏈詳解》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266
    左权县| 武川县| 页游| 平利县| 浮梁县| 定安县| 临夏市| 泉州市| 平潭县| 辉县市| 弋阳县| 汾西县| 汉沽区| 吴江市| 庄河市| 桐城市| 岳池县| 渝中区| 水富县| 吉安县| 曲周县| 太和县| 孟州市| 卢龙县| 嘉荫县| 额济纳旗| 平原县| 安化县| 色达县| 栖霞市| 温州市| 额济纳旗| 赤城县| 顺义区| 嘉义市| 安平县| 仁化县| 年辖:市辖区| 安陆市| 四平市| 会同县|