nginx-naxsi ホワイトリストルールの詳細な説明

nginx-naxsi ホワイトリストルールの詳細な説明

ホワイトリストルールの構文:

基本ルール wl:ID [否定] [mz:[$URL:target_url]|[match_zone]|[$ARGS_VAR:varname]|[$BODY_VARS:varname]|[$HEADERS_VAR:varname]|[NAME]]

wl:ID (ホワイトリストID)ホワイトリストに含まれる傍受ルール
0 ですすべての傍受ルールをホワイトリストに追加する
wl:42 ID 42の傍受ルールをホワイトリストに追加する
窓:42,41,43 ID 42、41、43 の傍受ルールをホワイトリストに追加する
ワット数:-42 ID 42 のインターセプトルールを除くすべてのインターセプトルールをホワイトリストに追加します。

mz:(マッチゾーン)

ARGS GET パラメータ全体、例: foo=bar&in=%20
$ARGS_VAR GET パラメータのパラメータ名 (例: foo=bar&in=%20 の foo および in)
$ARGS_VAR_X正規表現に一致するGETパラメータのパラメータ名
ヘッダーHTTPプロトコルヘッダー全体
$HEADERS_VAR HTTP ヘッダー名
$HEADERS_VAR_X正規表現に一致するHTTPプロトコルヘッダーの名前
POSTのパラメータ内容全体
$BODY_VAR POSTパラメータ名
$BODY_VAR_X正規表現に一致するPOSTパラメータのパラメータ名
メールアドレスURL(前?)
URL_X通常の一致する URL (以前?)
ファイル拡張子ファイル名(POSTを使用してファイルをアップロードするときにアップロードされるファイル名)

ホワイトリストの設定例

ルール #1000 を例に挙げます。ルール #1000 は、select、update、delete、insert などの SQL キーワードをフィルターするルールです。

ルール例示する
基本ルール wl:1000;このサブルールのインターセプト ルール #1000 を完全に無効にします。地域が指定されていないため、すべてがホワイトリストに追加されます。
基本ルール wl:1000 "mz:$ARGS_VAR:foo";

fooという名前のすべてのGETパラメータ値に対してインターセプトルール#1000を無効にする

デモからの http://mike.hi-linux.com/?foo=select * のようなリクエストはフィルタリングされません。

基本ルール wl:1000 "mz:$URL:/bar|ARGS";

URL /bar の GET リクエストのパラメータのインターセプト ルール #1000 を無効にする

次の類似リクエストはフィルタリングされません。

http://mike.hi-linux.com/bar?my=select * デモからhttp://mike.hi-linux.com/bar?from=weibo

基本ルール wl:1000 "mz:ARGS|NAME";

すべての GET リクエストのすべてのパラメータ名 (名前のみ、パラメータ値ではない) に対してインターセプト ルール #1000 を無効にします。

次のリクエストはフィルタリングされません。

http://mike.hi-linux.com/bar?from=weibo

次のリクエストはフィルタリングされます:

http://mike.hi-linux.com/bar?foo=select

select はパラメータ値であり、ホワイトリスト内にないためです。

基本ルール wl:0 "mz:$URL_X:^/upload/(.*).(.*)$|URL";

すべてのリクエストで ^/upload/(.*).(.*)$ の通常ルールに一致する URL のすべてのインターセプトルールを無効にします。

http://mike.hi-linux.com/upload/select.db のようなリクエストはフィルタリングされません (インターセプト ルール #1000 がトリガーされます)。

実際の戦闘のためのホワイトリストルール# vi naxsi_BasicRule.conf
基本ルール wl:1010,1011 "mz:$ARGS_VAR:rd";
基本ルール wl:1015,1315 "mz:$HEADERS_VAR:cookie";

nginx-naxsi ホワイトリストルールの詳細な説明は、エディターが皆さんと共有する内容のすべてです。参考になれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • geo モジュールを使用して Nginx でホワイトリストを設定する例
  • nginx でディレクトリ ホワイトリストと IP ホワイトリストを設定する方法
  • nginx にアクセスホワイトリストを動的に追加する方法
  • Nginxサーバーのブラックリストまたはホワイトリスト機能を備えたファイアウォールを構成する

<<:  Bootstrapはカルーセルの効果を実現します

>>:  MySQL 5.7.21 winx64 グリーンバージョンのインストールと設定方法のグラフィックチュートリアル

推薦する

Vue3 でタイマーコンポーネントをカプセル化する方法

背景一部のショッピング モールの Web ページで商品の詳細を開くと、購入数量を選択するためのカウン...

Vue のリスナーの基本的な使用例

目次序文1. リスナーの基本的な使い方2. リスナー形式3. ページに入るとすぐに監視とディープモニ...

MySQLインジェクションバイパスフィルタリング技術の概要

まず、GIF 操作を見てみましょう。ケース1: スペースがフィルタリングされるスペースの代わりに角括...

LinuxシステムにDockerをインストールするプロセス

このブログでは、Docker をインストールするプロセスを簡単な手順で説明します。Docker のイ...

MySQL マルチインスタンス構成のアプリケーションシナリオ

目次MySQL 複数インスタンスマルチインスタンスの概要マルチインスタンスとは何ですか?複数のインス...

MySQL 無料インストール版 (zip) のインストールと設定の詳細なチュートリアル

この記事では、MySQL無料インストール版(zip)のインストールと設定のチュートリアルを参考までに...

HTMLデザインパターンの日々の勉強ノート

HTML デザインパターン学習ノート今週は主にHTMLデザインパターンを学びました。学習内容をまとめ...

mysqlを使用して、URLから返されたhttp GETリクエストデータを記録します。

ビジネスシナリオの要件と実装ロジックの分析ビジネスでは、HTTP GET を使用してデータを要求する...

mysql5.7 ユーザー権限の作成、ユーザーの削除、権限の取り消し

1. ユーザーを作成します。注文: 'password' によって識別される ...

前後の秒、分、時間、日数を取得するMySQLデータベース

現在の時刻を取得します: current_timestamp を選択します。出力: 2016-06-...

MySql8 WITH RECURSIVE 再帰クエリ親子コレクションメソッド

背景コメントに似た機能を開発する場合は、必要に応じてすべてのコメントのサブセットをクエリする必要があ...

mysqlreplicate を使って MySQL マスタースレーブを素早く構築する方法

導入mysql-utilities ツールセットは、DBA のツールボックスとも言えるさまざまなツー...

MySQL SQL ステートメント分析とクエリ最適化の詳細な説明

パフォーマンスの問題のあるSQL文を取得する方法1. ユーザーからのフィードバックを通じてパフォーマ...

MySQL でコマンドを使用して階層検索を実現する方法の詳細な説明

序文この記事は主にMySQLコマンド階層検索ヘルプの使用に関する内容を紹介します。この記事のサンプル...

Typescript での infer キーワードの使用に関する詳細な理解

目次推測する事例:理解を深める参照する後で忘れないように、キーワード infer をメモしておきます...