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 疑似要素を使用してフロートをクリアする方法

推薦する

Dockerはローカルイメージをパッケージ化し、他のマシンに復元します

1. docker imagesを使用して、このマシン上のすべてのイメージファイルを表示します。 2...

dockerネットワーク双方向接続の詳細な説明

Dockerネットワークを見るdocker ネットワーク ls [root@master ~]# d...

経験者のHTMLの書き方と理由の分析

1. ナビゲーション: 順序なしリストとその他のラベル要素ナビゲーションを記述するために最も一般的に...

MySQL 5.7 と Mac 上の MySql の詳細なインストール図をダウンロードする

1.ブラウザに次のアドレスを入力します参考: 2. 次のインターフェースに入ります。下の場所をクリッ...

CSS3を使用してプログレスバー効果を実現し、動的にパーセンテージを追加する

プロジェクト中、プログレスバーを実装するために js の requestAnimationFrame...

データベースアカウントのパスワード暗号化の詳細な説明と例

データベースアカウントのパスワード暗号化の詳細な説明と例データベースアカウントとパスワードはデータベ...

ネイティブ JavaScript でオブジェクトが空かどうかをチェックする実装例

目次ネイティブJavaScriptとはA. 新しいブラウザでnullオブジェクトをチェックするコンス...

CSS ブラウザ互換性の問題に対する 4 つの解決策

フロントエンドは、技術が急速に進化するだけでなく、知っておくべき事柄が多すぎるという理由で大変な仕事...

Vue Element フロントエンドアプリケーション開発のための従来の JS 処理機能

目次1. 従来のコレクションに対するフィルター、マップ、および削減処理方法2. 再帰処理3. for...

bashコマンドの使い方の詳細な説明

Linux では、基本的に vi エディタのように「.sh」拡張子を持つテキストの処理と実行を記述す...

Dockerはイメージ名とTAG操作の名前を変更します

docker イメージを使用する場合、以下に示すように、REPOSITORY と TAG の両方が ...

HTMLでカスタムタグを使用する方法

カスタム タグは XML ファイルと HTML ファイルで自由に使用できますが、いくつか注意すべき点...

CSS の 6 つの重要なセレクター (3 秒で覚える)

出典: https://blog.csdn.net/qq_44761243/article/deta...

Dockerfileを使用してDockerイメージを構築する手順

Dockerfile は、命令を含むテキスト ファイルです。各命令はレイヤーを構築するため、各命令の...

MySQL がデフォルト値を持つ NULL 列の使用を推奨しない理由

よく聞かれる答えは、列に NULL 値を使用するとインデックスが無効になるというものですが、実際にテ...