SonicOS 7 ルールとポリシー --- TZ シリーズ用
- SonicOS 7 ルールとポリシー
- アクセス ルール
- NAT ルール
- ルーティング ルール
- コンテンツ フィルタ ルール
- アプリケーション ルール
- エンドポイント ルール
- SonicWall サポート
一致オブジェクトでの正規表現の作成
定義済みの正規表現を設定時に選択できます。また、個別正規表現を設定することもできます。この使用事例では、クレジットカード番号の Regex 一致オブジェクトの作成方法を説明しつつ、いくつかの一般的なエラーについても示します。
例えば、次の非効率的で少し間違った構文を使用して、クレジットカード番号に対する Regex 一致オブジェクトを作成するとします。
[1-9][0-9]{3} ?[0-9]{4} ?[0-9]{4} ?[0-9]{4}
ユーザはこのオブジェクトを使用してポリシーを作成しようとします。ユーザが「OK」をクリックすると、装置には "お待ちください…" というメッセージが表示されますが、管理セッションが非常に長時間無反応になり、結果的に正規表現が拒否されることがあります。
このような動作の原因は、個別オブジェクトとファイル内容一致オブジェクトでは、正規表現の前に暗黙的にドットとアスタリスク (.*)
が付くことです。ドットは、'\n'
を除く 256 文字の ASCII 文字すべてに一致します。このことや、使用されている一致オブジェクト種別や、正規表現の性質が相まって、制御プレーンが必要なデータ構造をコンパイルするのに長い時間がかかります。
解決策は、正規表現の前に '\D'
を付けることです。これは、クレジットカード番号の前に数字以外の文字が付き、実際に正規表現がより正確になるということを意味します。
さらに、上記の正規表現は、対象のクレジットカード番号を必ずしも正確に表していません。現在の形の正規表現では、1234 12341234 1234
など、いくつかの誤検出に一致する可能性があります。より正確な表現は以下のようになります。
\D[1-9][0-9]{3} [0-9]{4} [0-9]{4} [0-9]{4}
または
\D[1-9][0-9]{3}[0-9]{4}[0-9]{4}[0-9]{4}
より簡潔な表現は、それぞれ
\D\z\d{3}( \d{4}){3}
または
\D\z\d{3}(\d{4}){3}
となります。
これらは、1 つの一致オブジェクトの中に 2 つの正規表現として記述することも、以下のように 1 つの正規表現に圧縮することもできます。
\D\z\d{3}(( \d{4}){3}|(\d{12}))
次の正規表現を使用して、数字が '-'
で区切られたクレジットカード番号をキャプチャすることもできます。
\D\z\d{3}(( \d{4}){3}|(-\d{4}){3}||(\d{12}))
先行する '\D'
は、これらすべての正規表現に含める必要があります。
Was This Article Helpful?
Help us to improve our support portal