ポリシー表現での演算子とオペランドの使用
演算子は、1 つ以上のオブジェクトまたはオペランドを操作する操作 (数学演算、ブール演算、リレーショナル演算など) を識別する記号です。このトピックの最初のセクションでは、使用できる演算子を定義し、定義を示します。2 番目のセクションでは、メソッド、URL、クエリなどの特定の修飾子で使用できる演算子の一覧を示します。
演算子と定義
このセクションでは、ポリシー式を作成するときに使用できる演算子を定義し、その演算子について説明します。
-
==, !=, EQ, NEQ
これらの演算子は、完全に一致するかどうかをテストします。大文字と小文字は区別されます (「cmd.exe」は「cMd.exe」と同じではありません)。これらの演算子は、厳密な構文を満たす特定の文字列を許可するが、他の文字列は除外する権限を作成する場合に便利です。
-
GT
この演算子は数値比較に使用されます。URL とクエリ文字列の長さに使用されます。
-
CONTAINS, NOTCONTAINS
これらの演算子は、指定された修飾子と照合して、指定された文字列が修飾子に含まれているかどうかを判断します。これらの演算子は大文字と小文字を区別しません。
-
EXISTS, NOTEXISTS
これらの演算子は、特定の修飾子の存在を確認します。たとえば、これらの演算子を HTTP ヘッダーに適用して、特定の HTTP ヘッダーが存在するかどうか、または URL クエリが存在するかどうかを判断できます。
-
目次
この演算子は、修飾子が存在するかどうか、内容があるかどうか (つまり、値が何であれ、ヘッダーが存在し、それに関連する値があるかどうか) をチェックします。
修飾子、演算子、オペランド、アクション、例
このセクションでは、演算子とオペランドに使用できるパラメーターを示します。各項目は修飾子で始まり、関連する演算子とオペランドを一覧表示し、式が実行するアクションを説明し、例を示します。
-
方法
演算子:EQ、NEQ オペランド:必須:
- 標準 HTTP メソッド
- サポート対象メソッド
- GET、HEAD、POST、PUT、DELETE OPTIONS、TRACE、CONNECT アクション:受信したリクエストメソッドを設定されたメソッドに検証します。 例: Method EQ GET
URL
-
演算子:EQ、NEQ オペランド:必須:URL (フォーマット:/[プレフィックス] [*] [.suffix]) アクション:受信した URL を設定された URL で検証します。 例: URL EQ /foo*.asp URL EQ /foo* URL EQ /*.asp URL EQ /foo.asp
-
演算子:CONTAINS, NOTCONTAINS オペランド:必須:任意の文字列 (引用符で囲まれた) アクション:受信URLに設定されたパターンが存在することを確認します。(URL と URL クエリを含みます。) 例:URL に「ZZZ」が含まれています
-
URL LEN
演算子:GT オペランド:必須:長さ (整数値として) アクション:受信URLの長さを設定された長さと比較します。(URL と URL クエリを含みます。) 例:ルーレン GT 60
-
URL QUERY
演算子:含む、含まない オペランド:必須:任意の文字列 (引用符で囲む)。 オプション:長さとオフセット のアクション: 受信したURLクエリに、構成されたパターンが存在するかどうかを確認します。 コンテンツと同様に使用されます。 オプションが指定されていない場合は、パターンの後の URL クエリ全体が使用されます。 オプションが存在する場合、パターンの後のクエリの長さのみが使用されます。 オフセットは、パターンの検索をどこから開始するかを示すために使用されます。 例:URL クエリには「ZZZ」が含まれています
-
URL QUERY LEN
演算子:GT オペランド:必須:長さ (整数値として) アクション:受信 URL クエリの長さを設定された長さと比較します。 例: URLQUERYLN GT 60
-
URL TOKENS
演算子:EQ、NEQ オペランド:必須:URL トークン (サポートされている URL トークン =, +,%,!、&、?)。 アクション:受信URLと設定されたトークンの有無を比較します。疑問符の前にバックスラッシュ (\) を入力する必要があります。 例:URLTOKENS EQ ‘%, +, &,\? ‘
-
VERSION
演算子:EQ、NEQ オペランド:必須:標準 HTTP バージョン。有効な HTTP バージョン文字列 HTTP/1.0、HTTP/1.1 アクション:受信リクエストの HTTP バージョンと、設定された HTTP バージョンを比較します。 例:バージョン EQ HTTP/1.1
Header
-
演算子:EXISTS、NOTEXISTS オペランド:なし アクション:受信リクエストに HTTP ヘッダが存在するかどうかを調べます。 例:ヘッダークッキーが存在する
-
演算子:含む、含まない オペランド:必須:任意の文字列 (引用符で囲む)。 オプション:長さとオフセット のアクション:受信リクエストの特定のヘッダーに設定されたパターンが存在するかどうかを確認します。コンテンツと同様に使用されます。オプションが指定されていない場合は、パターンの後の HTTP ヘッダー値全体が使用されます。オプションがある場合は、パターンの後のヘッダーの長さのみが使用されます。オフセットは、パターンの検索をどこから開始するかを示すために使用されます。 例:ヘッダークッキーには「&sid」が含まれています
-
演算子:内容 オペランド:オプション:長さとオフセット アクション:HTTP ヘッダーの内容を使用します。オプションが指定されていない場合は、HTTP ヘッダ値全体が使用されます。オプションが存在する場合、オフセットから始まるヘッダーの長さのみが使用されます。 例:Header User-Agent CONTENTS
-
SOURCEIP
演算子:EQ、NEQ オペランド:必須:IPアドレス オプション:サブネットマスクアクション:受信リクエスト の送信元 IP アドレスを、設定された IP アドレスと照合して検証します。オプションのサブネットマスクを指定すると、受信リクエストは設定された IP アドレスとサブネットマスクに照らして検証されます。 例:Sourceip EQ 192.168.100.0 -netmask 255.255.255.0
-
DESTIP
オペレータ:EQ、NEQ オペランド:必須:IPアドレスオプション:サブネットマスクアクション:受信リクエスト の宛先 IP アドレスを、設定された IP アドレスと照合して検証します。オプションのサブネットマスクを指定すると、受信リクエストは設定された IP アドレスとサブネットマスクに照らして検証されます。 例:Sourceip EQ 192.168.100.0 -netmask 255.255.255.0
-
SOURCEPORT
演算子:EQ、NEQ オペランド:必須:ポート番号 オプション:ポート範囲 アクション:受信リクエストの送信元ポート番号を設定されたポート番号と照合します。 例:SOURCEPORT EQ 10–20
-
DESTPORT
演算子:EQ、NEQ オペランド:必須:ポート番号 オプション:ポート範囲 アクション:受信要求の宛先ポート番号を設定されたポート番号と照合します。 例:DESTPORT NEQ 80
-
CLIENT.SSL.VERSION
演算子:EQ、NEQ オペランド:必須:SSLバージョン アクション:セキュア接続で使用されている SSL または TLS バージョンのバージョンを確認します。 例:CLIENT.SSL.VERSION EQ SSLV3
-
CLIENT.CIPHER.TYPE
演算子:EQ、NEQ オペランド:必須:クライアント暗号タイプ アクション:使用されている暗号のタイプ (エクスポートまたは非エクスポート) を確認します。 例:CLIENT.CIPHER.TYPE EQ EXPORT
-
CLIENT.CIPHER.BITS
演算子:EQ、NEQ、GE、LE、GT、LT オペランド:必須:クライアント暗号ビット アクション:使用されている暗号のキー強度を確認します。 例:CLIENT.CIPHER.BITS GE 40
-
CLIENT.CERT
演算子:EXISTS、NOTEXISTS オペランド:なしアクション:SSL ハンドシェイク中にクライアントが有効な証明書を送信したかどうかを確認します。 例:CLIENT.CERT EXISTS
-
CLIENT.CERT.VERSION
演算子:EQ、NEQ、GE、LE、GT、LT オペランド:クライアント証明書バージョン アクション:クライアント証明書のバージョンを確認します。 例:CLIENT.CERT.VERSION EQ 2
-
CLIENT.CERT.SERIALNUMBER
演算子:EQ、NEQ オペランド:必須:クライアント証明書のシリアル番号 アクション:クライアント証明書のシリアル番号を確認します。シリアル番号は文字列として扱われます。 例:CLIENT.CERT.SER IALNUMBER EQ 2343323
-
CLIENT.CERT.SIGALGO
演算子:EQ、NEQ オペランド:必須:クライアント証明書署名アルゴリズム。 アクション:クライアント証明書で使用されている署名アルゴリズムを確認します。 例:CLIENT.CERT.SIGALGO EQ md5WithRSAEncryption
-
CLIENT.CERT.SUBJECT
演算子:CONTAINS、NOTCONTAINS オペランド:必須:クライアント証明書の件名 オプション:長さ、オフセット アクション:クライアント証明書の件名フィールドを確認します。 例:CLIENT.CERT.SUBJECT CONTAINS CN= Access_Gateway
-
CLIENT.CERT.ISSUER
演算子:CONTAINS、NOTCONTAINS オペランド:必須:クライアント証明書 発行者オプション:長さ、オフセット アクション:クライアント証明書の発行者フィールドを確認します。 例:CLIENT.CERT.ISSUER CONTAINS O=Verisign
-
CLIENT.CERT.VALIDFROM
演算子:EQ、NEQ、GE、LE、GT、LT オペランド:必須:日付 アクション:クライアント証明書の有効日を確認します。 有効な日付形式は次 のとおりです。1994年11月5日火曜日 08:12:31 GMT グリニッジ標準時 94年11月5日火曜日 08:12:31 GMT1994 年11月14日火曜日 08:12:31 例:CLIENT.CERT.VALIDFROM GE ‘1994年11月14日火曜日 08:12:31 ‘
-
CLIENT.CERT.VALIDTO
演算子:EQ、NEQ、GE、LE、GT、LT オペランド:必須:日付 アクション:クライアント証明書が有効になるまでの日付を確認します。 有効な日付形式は次 のとおりです。1994年11月5日火曜日 08:12:31 GMT グリニッジ標準時 94年11月5日火曜日 08:12:31 GMT1994 年11月14日火曜日 08:12:31 例:CLIENT.CERT.VALIDTO GE ‘1994年11月14日火曜日 08:12:31 ‘