IIS を使用して X-Forwarded-For ヘッダー (XFF) を呼び出して訪問者の実際の IP を記録する 2 つの方法

IIS を使用して X-Forwarded-For ヘッダー (XFF) を呼び出して訪問者の実際の IP を記録する 2 つの方法

問題: IIS を通じて公開された Web サイトは F5 デバイスの背後に配置されています。透過的な監視モードで WAF デバイスによってフィルタリングされた後、パブリック ネットワーク訪問者の実際の IP アドレスは WAF デバイスの IP アドレスに置き換えられ、元の実際の IP アドレスは Web サイトのログに表示されません。

解決策 1: サードパーティの IIS プラグインを使用して X-Forwarded-For を呼び出し、訪問者の実際の IP アドレスを取得します。これにより、f5 に配置された後に IIS がユーザーの IP アドレスを記録できないという問題が解決されます。
解決策 2: Microsoft の公式の高度なログ モジュール関数を使用して X-Forwarded-For を呼び出し、実際の IP アドレスを記録します。

上記の両方のソリューションでは、使用前に WAF 管理者が F5 デバイスで X-Forwarded-For データ転送を定義する必要があることに注意してください。

シナリオ 1:

F5XForwardedFor ファイルを解凍します。

ダウンロードアドレス: https://www.jb51.net/softs/770998.html

サーバーのオペレーティング システムのバージョンに応じて、x86\Release または x64\Release ディレクトリ内の F5XFFHttpModule.dll と F5XFFHttpModule.ini を C:\F5XForwardedFor\ などのディレクトリにコピーします。 IIS プロセスにディレクトリへの読み取り権限があることを確認します。

IIS マネージャーを開き、モジュール機能をダブルクリックします。

[ネイティブ モジュールの構成] をクリックし、ポップアップ表示されるダイアログ ボックスで [登録] をクリックします。

ダウンロードした.dllファイルを追加します(x64とx86の両方を追加するのが最適です)

追加した 2 つのファイルを承認して、ISAPI および CGI 拡張機能の実行を許可します。

ホームページに戻ったら、IIS を再起動します。

%SystemDrive%\inetpub\logs\LogFiles に移動して IIS ログを照会すると、ログにはすでに関連する元の IP 情報が含まれていることがわかります。

シナリオ2:

IIS の高度なログ機能をダウンロードしてインストールします https://www.microsoft.com/en-gb/download/details.aspx?id=7211

IIS ホームページに再度アクセスし、ダブルクリックして高度なログ機能を開きます。

高度なログ記録を有効にするには:

ローカル ログ フィールド構成を変更し、フィールドを追加します。

フィールド ID に「ClientSourceIP」と入力します。

カテゴリで「デフォルト」を選択します。

ソースタイプとして「リクエストヘッダー」を選択します。

ソース名に「X-Forwarded-For」と入力します。

ログ定義を追加します:

「ベースファイル名」フィールドに「クライアントソース IP」と入力し、「フィールドの選択」ボタンをクリックして「ClientSourceIP」を選択します。最後に「適用」をクリックしてホームページに戻ります。

ホームページに戻ったら、IIS を再起動します。

高度なログを照会すると、訪問者の元の IP 情報を取得できます。


これで、IIS が X-Forwarded-For ヘッダー (XFF) を呼び出して訪問者の実際の IP アドレスを記録する 2 つの方法について説明したこの記事は終了です。IIS が X-Forwarded-For を呼び出す方法の詳細については、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

<<:  トップに戻るボタンを実装するJavaScript

>>:  BFCとは何ですか? CSS 疑似要素を使用してフロートをクリアする方法

推薦する

Word のコンテンツを Web サイトのエディターに直接コピーすることはお勧めしません。

<br />質問: Word のコンテンツを Web サイトのエディターに直接コピーする...

Vueは書籍ショッピングカートの機能を実現

この記事の例では、書籍ショッピングカート機能を実現するためのVueの具体的なコードを参考までに共有し...

JavaScript BOM ロケーション オブジェクト + ナビゲーター オブジェクト + 履歴オブジェクト

目次1. 場所オブジェクト1. URL 2. 場所オブジェクトのプロパティ3. ロケーションオブジェ...

Vue で Axios 非同期リクエスト API を使用する方法

目次基本的なHTTPリクエストの設定async/await を使用した Axios Axios によ...

同期スクロールを実現するための複数のテーブル要素のサンプルコード

Element UIは、複数のテーブルを同時に水平および垂直にスクロールすることを実装します。 コー...

MySQLサービスの自動停止の解決策

この記事では主に、MySQL サービスの自動停止の解決策を紹介し、参考と学習のために共有します。一緒...

Mysqlマスタースレーブ同期の実装原理

1. MySQL マスター/スレーブ同期とは何ですか?マスター データベースのデータが変更されると、...

CSSのclip-pathプロパティを使用して不規則なグラフィックを表示する

clip-path CSS プロパティはクリッピングを使用して要素の表示可能領域を作成します。領域内...

Linux で MySQL 5.6 X64 バージョンをインストールする詳細な手順

環境: 1. CentOS6.5 X64 2.mysql-5.6.34-linux-glibc2.5...

JavaScript 戦略パターンを使用してフォームを検証する方法

目次概要戦略パターンを使用しないフォーム検証戦略パターンを使用して最適化する戦略パターンの利点要約す...

Vue コンポーネント値転送中のデータ損失の分析と解決

序文前回の記事では、JavaScript の 2 つのデータ型、基本型と参照型、および参照型の浅いコ...

Dockerはコード検出プラットフォームSonarQubeを構築し、Mavenプロジェクトのプロセスを検出します

1 はじめに優れたコーディング習慣は優れたプログラマーが備えるべき資質ですが、コードの品質を保証する...

js を使用して画像をモザイク化する方法の例

この記事では、主に js を使用して画像をモザイク化する方法の例を紹介し、次のように共有します。効果...

MySqlは、外部ネットワーク接続クライアントの低速問題を解決するためにskip-name-resolveを使用します。

Tencent Cloud上に構築されたMySQLは、開発用コンピュータでNavicatを使用して...

CSS 使用のヒントのまとめ

最近、ブログのアップグレードを始めました。テンプレートを変更する過程で、CSS スタイルシートを書き...