機密フィールド
ユーザーが入力した情報を保護するために、Web フォームフィールドを機密情報として指定できます。通常、保護されているWebサーバーの1つでユーザーがWebフォームに入力した情報は、Citrix ADCログに記録されます。ただし、機密情報として指定された Web フォームフィールドに入力された情報はログに記録されません。その情報は、ウェブサイトがそのようなデータを保存するように設定されている場合にのみ保存されます。通常は安全なデータベースに保存されます。
機密フィールド指定で保護する必要がある一般的な情報の種類は次のとおりです。
- パスワード
- クレジットカード番号、認証コード、有効期限
- 社会保障番号
- 納税者番号
- 自宅住所
- 個人電話番号
良い習慣であることに加えて、eコマースサーバーでのPCI-DSSコンプライアンス、米国の医療情報を管理するサーバーでのHIPAAコンプライアンス、および他のデータ保護基準への準拠のために、機密フィールド指定の適切な使用が必要になる場合があります。
重要:
次の 2 つのケースでは、機密フィールドの指定が期待どおりに機能しません。
- Webフォームに機密フィールドまたは256文字を超えるアクションURLがある場合、そのフィールドまたはアクションURLはCitrix ADCログで切り捨てられます。
- 特定の SSL トランザクションでは、機密フィールドまたはアクション URL のいずれかが 127 文字を超えると、ログが切り捨てられます。
いずれの場合も、Web App Firewall は 15 文字の文字列を通常の 8 文字の文字列ではなく、文字「x」でマスクします。機密情報を確実に削除するには、ユーザーは最初の 256 文字または (SSL が使用されている場合) 最初の 127 文字に一致するフォームフィールド名とアクション URL 式を使用する必要があります。
保護された Web サイトの Web フォームフィールドを機密情報として扱うように Web App Firewall を構成するには、そのフィールドを [機密フィールド] リストに追加します。フィールド名を文字列として入力するか、1 つ以上のフィールドを指定する PCRE 互換の正規表現を入力できます。機密フィールドの指定は、フィールドを追加するときに有効にすることも、後で指定を変更することもできます。
注:
リリース 13.1 ビルド 27.x から、機密フィールドは WAF プロファイルでもサポートされています。詳細については、 WAF プロファイルの機密フィールドを参照してください。
コマンドラインインターフェイスを使用して機密フィールドを追加するには
コマンドプロンプトで、次のコマンドを入力します。
add appfw confidField <fieldName> <url> [-isRegex ( REGEX | NOTREGEX )] [-comment "<string>"] [-state ( ENABLED | DISABLED )]
save ns config
例
次の使用例は、名前がPassword で始まるすべての Web フォームフィールドを機密フィールドリストに追加します。
add appfw confidField Password "https?://www[.]example[.]com/[^<>]\*[^a-z]password[0-9a-z._-]\*[.](asp|cgi|htm|html|htp|js|php)" -isRegex REGEX -state ENABLED
save ns config
<!--NeedCopy-->
コマンドラインインターフェイスを使用して機密フィールドを変更するには
コマンドプロンプトで、次のコマンドを入力します。
set appfw confidField <fieldName> <url> [-isRegex ( REGEX | NOTREGEX )][-comment "<string>"] [-state ( ENABLED | DISABLED )]
save ns config
例
次の例では、機密フィールドの指定を変更してコメントを追加します。
set appfw confidField Password "https?://www[.]example[.]com/[^<>]\*[^a-z]password[0-9a-z._-]\*[.](asp|cgi|htm|html|htp|js|php)" -comment "Protect password fields." -isRegex REGEX -state ENABLED
save ns config
<!--NeedCopy-->
コマンドラインインターフェイスを使用して機密フィールドを削除するには
コマンドプロンプトで、次のコマンドを入力します。
rm appfw confidField <fieldName> <url>
save ns config
GUI を使用して機密フィールドを構成するには
- [ セキュリティ ] > [ アプリケーションファイアウォール] に移動します。
- 詳細ペインの [ 設定] で、[ 機密フィールドの管理] をクリックします。
- [機密フィールドの管理] ダイアログボックスで、次のいずれかの操作を行います。
- 新しいフォームフィールドをリストに追加するには、[追加] をクリックします。
- 既存の機密フィールドの指定を変更するには、フィールドを選択し、[ 編集] をクリックします。
[ Web App Firewall の機密フィールド ] ダイアログボックスが表示されます。
注記:
既存の機密フィールドの指定を選択して [ 追加] をクリックすると、[ 機密フォームフィールドの作成 ] ダイアログボックスにその機密フィールドの情報が表示されます。その情報を変更して、新しい機密項目を作成できます。
- ダイアログボックスで、要素を入力します。これには、次の種類のアカウントがあります。
- [有効] チェックボックス。この機密フィールド指定を有効または無効にするにはオンまたはオフにします。
- フォームフィールド名は正規表現のチェックボックスですか。フォームフィールド名で PCRE 形式の正規表現を有効にする場合は、オンまたはオフにします。
- フィールド名。特定のフィールド名を表す、またはパターンに従う名前を持つ複数のフィールドに一致する、リテラル文字列または PCRE 形式の正規表現を入力します。
- アクション URL。機密フィールドを含む Web フォームが配置されている Web ページの 1 つ以上の URL を定義するリテラル URL または正規表現を入力します。
- [コメント]。コメントを入力します。オプションです。
- [ 作成] または[ OK]をクリックします。
- 機密フィールドリストから機密フィールドの指定を削除するには、削除する機密フィールドのリストを選択し、「削除」をクリックして削除し、「 OK」 をクリックして選択を確定します。
- 機密項目指定の追加、変更、および削除が完了したら、[ 閉じる] をクリックします。
例
以下は、便利なフォームフィールド名を定義する正規表現です。
-
^passwd_ (Applies confidential-field status to all field names that begin with the “passwd_” string.)
-
^((\[0-9a-zA-Z._-]*||\\x\[0-9A-Fa-f][0-9A-Fa-f])+-)?passwd_ (Applies confidential-field status to all field names that begin with the string passwd_, or that contain the string -passwd_ after another string that might contain non-ASCII special characters.)
以下に、役に立つと思われる特定の URL タイプを定義する正規表現をいくつか示します。例にあるものを自分のウェブホストとドメインに置き換えてください。
-
Web フォームが Web ホスト www.example.com の複数の Web ページに表示されているが、それらの Web ページはすべて logon.pl?では、次の正規表現を使用できます。
https?://www[.]example[.]com/([0-9A-Za-z][0-9A-Za-z_.-]*/)*logon[.]pl? <!--NeedCopy-->
-
Web フォームが Web ホスト www.example-español.com の複数の Web ページに表示され、その中に n-チルダ (ñ) 特殊文字が含まれている場合は、次の正規表現を使用できます。この正規表現は、n チルダの特殊文字を、C3 B1 を含むエンコードされた UTF-8 文字列として表します。UTF-8 文字セットの文字:
https?://www[.]example-espa\xC3\xB1ol[.]com/([0-9A-Za-z][0-9A-Za-z_.-]\*/)\* logon[.]pl? <!--NeedCopy-->
-
query.pl を含む Web フォームが example.com ドメイン内の異なるホスト上の複数の Web ページに表示されている場合は、次の正規表現を使用できます。
https?://([0-9A-Za-z][0-9A-Za-z_-.]*[.])\*example[.]com/([0-9A-Za-z][0-9A-Za-z_-.]\*/)*logon[.]pl? <!--NeedCopy-->
-
query.pl を含む Web フォームが、異なるドメインの異なるホスト上の複数の Web ページに表示される場合は、次の正規表現を使用できます。
https?://([0-9A-Za-z][0-9A-Za-z_-.]\*[.])\*[0-9A-Za-z][0-9A-Za-z_-.]+[.][a-z]{2,6}/([0-9A-Za-z][0-9A-Za-z_-.]*/)*logon[.]pl? <!--NeedCopy-->
-
Web フォームが Web ホスト www.example.com の複数の Web ページに表示されているが、それらの Web ページはすべて logon.pl?では、次の正規表現を使用できます。
https?://www[.]example[.]com/([0-9A-Za-z][0-9A-Za-z_-.]*/)*logon[.]pl? <!--NeedCopy-->