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 グリーンバージョンのインストールと設定方法のグラフィックチュートリアル

推薦する

トラフィックの多いウェブサイト向けのソリューション

まず、サーバーのハードウェアが現在のトラフィックをサポートするのに十分かどうかを確認します。通常の ...

負荷分散の基礎知識とnginxを使用した負荷分散の簡単な例

Nginx は、一般的に 7 層の負荷分散に使用できます。この記事では、負荷分散に関する基本的な知識...

Vueはプライベートフィルターと基本的な使用法を定義します

プライベート フィルターとグローバル フィルターのメソッドと概念は同じですが、プライベート フィルタ...

幅と高さが可変の要素を中央に配置するための CSS ソリューション

1. 水平中央公開コード: html: <div class="parent&quo...

Vueはツリーテーブルを実装する

この記事では、ツリーテーブルを実装するためのVueの具体的なコードを例として紹介します。具体的な内容...

Windows システムでの MySQL 8.0.21 インストール チュートリアル (図とテキスト)

インストールの提案: インストールには .exe を使用せず、圧縮パッケージを使用してください。これ...

HTMLフォームタグチュートリアル(1):

フォームは、動的な Web ページを実装するための主要な外部フォームです。フォームとフォーム フィー...

TypeScriptにおけるunknownとanyの違いについて詳しく説明します

目次序文1. 不明 vs 任意2. 未知とあらゆるもののメンタルモデル3. まとめ要約する序文any...

WeChatアプレットがSMS認証コード送信のカウントダウンを実装

この記事では、WeChatアプレットがSMS認証コードのカウントダウンを送信するための具体的なコード...

js で虫眼鏡効果を実現するためのアイデアとコード

この記事の例では、虫眼鏡効果を実現するためのjsの具体的なコードを参考までに共有しています。具体的な...

Vueはスクロールバースタイルを実装します

最初はブラウザのスクロールバーのスタイルを変更して効果を実現したいと思っていましたが、情報を調べてみ...

ノードの対応するバージョンに関する簡単な説明 node-sass sass-loader

目次ノードのバージョンが一致しない、ノードをアップグレードまたはダウングレードするnvm を使用して...

CentOS7 での MySQL 8.0.16 のインストールと設定のチュートリアル

MySQLの古いバージョンをアンインストールします(古いバージョンがない場合は、この手順をスキップし...

MySQLデータベースを別のマシンに移行する方法の詳細な説明

1. まず、移行サーバー上のデータ ファイルを見つけます。MySQL 5.7 とデフォルトのインスト...

MySQLのユーザー権限の確認と管理方法の詳細な説明

この記事では、例を使用して、MySQL ユーザー権限を確認および管理する方法を説明します。ご参考まで...