ホームページ  >  記事  >  運用・保守  >  Nginx クロスドメイン アクセスとアンチリーチングを構成する方法

Nginx クロスドメイン アクセスとアンチリーチングを構成する方法

WBOY
WBOY転載
2023-05-13 18:31:121589ブラウズ

クロスドメイン アクセス制御

クロスドメイン アクセス

Nginx クロスドメイン アクセスとアンチリーチングを構成する方法

##ブラウザがクロスドメイン アクセスを禁止しているのはなぜですか

安全ではなく、CSRF 攻撃を受ける可能性があります。


Nginx クロスドメイン アクセスとアンチリーチングを構成する方法#ハッカーによって制御されている Web サイト b が応答ヘッダーに悪意のある情報を追加して、クライアントが Web サイト a にアクセスできるようにすると、csrf 攻撃が発生します

nginx によるクロスドメイン アクセスの構成方法

add_header 構文

    syntax:add_header 名の値 [常に];
  • default:—
  • context:http、server、location (場所にある場合)
  • 構文の説明:

    add_header name value [always];
  • name は応答ヘッダーによって返されるキーを表します
  • 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;
    }
アンチホットリンク


ホットリンク対策の目的

    #リソースの悪用を防ぎます。
  • 異常なユーザー アクセスの防止、Web サイトのリソースの占有、Web サイトのパフォーマンスへの影響、通常のユーザー アクセスへの影響は避けられません
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 構文

##構文: Referer_hash_bucket_size サイズ;

#デフォルト: Referer_hash_bucket_size 64;
  • コンテキスト: サーバー、ロケーション
  • 構文説明:
  • referer_hash_bucket_size size; 設定がis valid 参照ハッシュテーブルのストレージサイズ。

  • referer_hash_max_size 構文

構文: Referer_hash_max_size サイズ;

デフォルト: Referer_hash_max_size 2048;
  • context: サーバー、場所
  • 構文の説明:
  • referer_hash_max_size size; 有効なリファラー ハッシュ テーブルの最大サイズを設定することを意味します。

  • #valid_referers 構文


構文: valid_referers なし | ブロック | サーバー名 | 文字列 ...;

デフォルト: —

  • #コンテキスト: サーバー、場所

  • ## 構文の説明:
  • #valid_referers none |blocked |server_names | string ...;
  • none は、リクエスト ヘッダーに「referer」フィールドが欠落していることを示します;

ブロックされたとは、「referer」フィールドがリクエスト ヘッダーに表示されるが、その値がファイアウォールまたはプロキシ サーバーによって削除されたことを意味します。これらの値は、「http://」または「」で始まらない文字列です。 https://";
  • server_names は、「referer」リクエスト ヘッダー フィールドにサーバー名が含まれていることを意味します。
  • string は、サーバー名を定義することを意味しますおよびオプションの URI プレフィックス。サーバー名の先頭または末尾に「*」を含めることができます。 「リファラー」フィールドのサーバー ポートはチェック中に無視されました;
  • アンチホットリンクの小規模なケース
  • 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"/ alt="Nginx クロスドメイン アクセスとアンチリーチングを構成する方法" >
    </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

Nginx クロスドメイン アクセスとアンチリーチングを構成する方法

他のWebサイトによるあなたのアクセスを許可するWeb サイトのリソース構成

Nginx クロスドメイン アクセスとアンチリーチングを構成する方法

以上がNginx クロスドメイン アクセスとアンチリーチングを構成する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はyisu.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。