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

推薦する

DockerにELKをインストールしてJSON形式のログ分析を実装する方法

ELKとは何ですか? ELK は、Elastic が提供するログ収集およびフロントエンド表示ソリュー...

Ubuntu 18.04 は mysql 5.7.23 をインストールします

以前、Ubuntu 16.04 に MySQL をスムーズにインストールしました。今回、Ubuntu...

CSS が初期読み込み時の白い画面の時間に与える影響

外部 CSS ファイルを使用したレンダリング パイプライン上図では、HTML データの要求から DO...

jconsole を使用してリモート Tomcat サービスを監視する方法

JConsoleとはJConsole は Java 5 で導入されました。 JConsole は、コ...

jsはシンプルな英語-中国語辞書を実装します

この記事では、参考までに、簡単な英中辞典を実装するためのjsの具体的なコードを紹介します。具体的な内...

データベースを削除せずにMySQLのすべてのテーブルを素早く削除する方法

この記事では、例を使用して、データベースを削除せずに MySQL 内のすべてのテーブルをすばやく削除...

HTML 基本ノート (推奨)

1. ウェブページの基本構造: XML/HTML コードコンテンツをクリップボードにコピー<...

Vueは動的コンポーネントを使用してTAB切り替え効果を実現します

目次問題の説明Vueの動的コンポーネントとはアプリケーションシナリオの説明実装手順ステップ 1 (新...

JSONデータをHTMLで表示する方法

背景:場合によっては、json データをページに直接表示する必要があります (たとえば、インターフェ...

Centos7 での python3 のインストールとアンインストールに関するチュートリアル

1. Python 3をインストールする1. 依存パッケージをインストールしますyum instal...

Reactはいくつかの方法でパラメータを渡します

目次親コンポーネントと子コンポーネント間でパラメータを渡すルーティングパラメータステータスの改善コン...

HTTP ステータス コード

このステータス コードは、リクエストのステータスに関する情報を提供し、サイトとリクエストされたページ...

MySQLキーワードDistinctの詳細な紹介

MySQLキーワードDistinctの使い方の紹介DDL SQLを準備します: テーブルテストを作成...

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

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

VMware での Ubuntu 16.04 イメージの完全インストール チュートリアル

この記事では、VMware 12でのUbuntu 16.04イメージのインストールチュートリアルを参...