CORS クロスドメイン リクエストでマルチドメイン名のホワイトリストを設定するための Node.js のサンプル コード共有
この記事では主に Node.js CORS クロスドメインリクエストでマルチドメイン名のホワイトリストを設定する方法について、サンプルコードを通して詳しく紹介しています。必要な場合はフォローすることができます。一緒に見てみましょう。
CORS
CORS について言えば、フロントエンドについては誰もがよく知っていると思うので、ここでは詳しく説明しません。詳しくは、この記事を読んでください。
CORS は主に、インターフェイスにアクセスを許可するドメイン名に対する応答ヘッダーの Access-Control-Allow-Origin 属性を構成します。最も一般的な設定は次のとおりです:
1 2 |
|
ただし、この設定は最も単純かつ粗雑であり、最も安全性が低くなります。これは、インターフェイスがすべてのドメイン名に対してクロスドメイン リクエストを行うことを許可することを意味します。ただし、一般的な実際のビジネスでは、インターフェイスでは、すべてではなく、1 つまたは少数の Web サイトに対してクロスドメイン リクエストのアクセス許可のみを許可することが予想されます。
それでは、賢明な方であれば、通常のルールを記述するだけで複数のドメイン名をホワイトリストに登録するのは簡単ではないかと考えているはずです。それが機能しない場合は、Access-Control-Allow-Origin 属性をカンマで区切られた複数のドメイン名に直接構成する方が良いのではないでしょうか?
このように:
1 2 3 4 |
|
申し訳ありませんが、この書き方は無効です。 Node.js では、応答ヘッダーの Access-Control-Allow-Origin 属性は (*) 以外の正規表現と一致できず、ドメイン名をカンマで区切ることもできません。つまり、Access-Control-Allow-Origin の属性値は、単一のドメイン名 文字列 または (*) にのみ設定できます。 複数のドメイン名を許可する必要があり、安全でない *
ワイルドカードを使用したくないため、複数のドメイン名ホワイトリストに対して CORS を構成できないというのは本当ですか?複数のドメイン名ホワイトリストを使用した CORS は実際に実現可能です。国を救うにはちょっとしたひねりが必要です。
マルチドメインホワイトリストのCORS実装原則
特定の原則については、corsライブラリのコアコードを参照できます:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 |
|
Access-Control-Allow-Origin 属性 複数のドメイン名を設定できないことが明らかになったので、このパスは諦める必要があります。
最も一般的で効果的な方法は、リクエストされたヘッダーの Origin 属性値 (req.header.origin) がドメイン名のホワイトリストに含まれているかどうかをサーバー側で判断することです。ホワイトリストに含まれている場合は、Access-Control-Allow-Origin を現在の Origin 値に設定します。これにより、Access-Control-Allow-Origin の単一ドメイン名の要件が満たされ、現在のリクエストがアクセスされることが保証されます。ホワイトリストにない場合は、
エラー メッセージが返されます。 このようにして、クロスドメインリクエストの検証をブラウザからサーバーに転送します。 Origin 文字列の検証は、通常の文字列の検証と同等になります。
配列具体的なコードは次のとおりです:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
|
まとめ
以上がCORS クロスドメイン リクエストでマルチドメイン名のホワイトリストを設定するための Node.js のサンプル コード共有の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











この記事では、NodeJS V8 エンジンのメモリとガベージ コレクター (GC) について詳しく説明します。

ノンブロッキングおよびイベント駆動に基づいて構築されたノード サービスには、メモリ消費量が少ないという利点があり、大量のネットワーク リクエストの処理に非常に適しています。大量のリクエストを前提として、「メモリ制御」に関する問題を考慮する必要があります。 1. V8 のガベージ コレクション メカニズムとメモリ制限 Js はガベージ コレクション マシンによって制御されます

ノード用の Docker イメージの選択は些細なことのように思えるかもしれませんが、イメージのサイズと潜在的な脆弱性は、CI/CD プロセスとセキュリティに大きな影響を与える可能性があります。では、最適な Node.js Docker イメージを選択するにはどうすればよいでしょうか?

Node 19 が正式リリースされましたので、この記事では Node.js 19 の 6 つの主要な機能について詳しく説明します。

Nodejs実行可能ファイルをpkgでパッケージ化するにはどうすればよいですか?次の記事では、pkg を使用して Node プロジェクトを実行可能ファイルにパッケージ化する方法を紹介します。

ファイル モジュールは、ファイルの読み取り/書き込み/開く/閉じる/削除の追加など、基礎となるファイル操作をカプセル化したものです。ファイル モジュールの最大の特徴は、すべてのメソッドが **同期** と ** の 2 つのバージョンを提供することです。 asynchronous**、sync サフィックスが付いているメソッドはすべて同期メソッドであり、持たないメソッドはすべて異種メソッドです。

イベント ループは Node.js の基本的な部分であり、メイン スレッドがブロックされていないことを確認することで非同期プログラミングが可能になります。イベント ループを理解することは、効率的なアプリケーションを構築するために重要です。次の記事では、Node のイベント ループについて詳しく説明します。お役に立てれば幸いです。

ノードが npm コマンドを使用できない理由は、環境変数が正しく設定されていないためです。解決策は次のとおりです: 1. 「システムのプロパティ」を開きます; 2. 「環境変数」->「システム変数」を見つけて、環境を編集します。変数; 3.nodejs フォルダーの場所を見つけます; 4.「OK」をクリックします。
