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

跨域訪問控制

跨域訪問html

爲何瀏覽器禁止跨域訪問跨域

  • 不安全,容易出現CSRF攻擊!

 

 

 

若是黑客控制的網站B在響應頭裏添加了讓客戶端去訪問網站A的惡意信息,就會出現CSRF攻擊瀏覽器

 

Nginx如何配置跨域訪問安全

add_header語法服務器

  • Syntax:add_header name value [always];
  • Default:—
  • Context:http, server, location, if in location

 語法解釋:app

  • add_header name value [always];
  • name 表示響應頭返回的key
  • value 表示響應頭返回的key對應的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;
    }

  

防盜鏈

防盜鏈目的網站

  • 防止資源被盜用。
  • 防止非正經常使用戶訪問,佔用網站資源,影響網站性能,勢必影響正經常使用戶訪問

 

 

基於http_referer防盜鏈配置模塊google

 ngx_http_referer_module模塊用於阻止對「Referer」頭字段中具備無效值的請求訪問站點。3d

舉例

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;表示設置有效引用散列表的存儲區大小。

referer_hash_max_size 語法

  • Syntax: referer_hash_max_size size;
  • Default: referer_hash_max_size 2048;
  • Context: server, location

語法解釋:

  • referer_hash_max_size size;表示設置有效引用者哈希表的最大大小。

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」字段出如今請求標頭中,但其值已被防火牆或代理服務器刪除; 這些值是不以「http://」或「https://」開頭的字符串;
  • server_names 表示「Referer」請求頭字段包含一個服務器名稱;
  • string 表示定義服務器名稱和可選的URI前綴。 服務器名稱的開頭或結尾能夠包含「*」。 在檢查期間,「Referer」字段中的服務器端口被忽略;

防盜鏈小案例

touch test_referer.html  (在 /op/app/code 目錄下)

<html>
<head>
    <meta charset="utf-8">
    <title>imooc1</title>
</head>
<body style="background-color:red;">
   <h1>張彪</h1> <img src="http://192.168.1.112/wei.png"/> </body> </html>

  

 

 配置防盜鏈若是不是從 www.zhangbiao.com 域名轉來的就會報錯 

    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  

 

 

容許其餘網站訪問本身網站資源配置

相關文章
相關標籤/搜索