複数の属性値をフィルタ処理するには、単に複数の属性比較句を連続して使用するだけです。演算子で結合された複数のロケータを使用します。演算子を使用することもできます。結果セットを結合します。構文は、次の制限の対象となっています。サポートされていません。比較演算子はすべてサポートされています。#22823)相対ロケータ式は、ルートノードのコンテキストで解決されます。次のようなクエリーと結果を考えてみます。相対ロケータは、述語内でもサポートされています。して解決されています。して評価する式が前に付けられたロケータは許可されず、使用するとエラーが発生します。演算子を次のようなノード型と組み合わせることは、サポートされていません。サポートされています。sec)パスがルート要素を「上方向」に導いている場合は、「上下」の移動がサポートされていません。関数はサポートされていないか、または説明したような既知の問題があります。id()lang()local-name()name()namespace-uri()normalize-space()starts-with()string()substring-after()substring-before()translate()次の軸はサポートされていません。含まれている可能性があります。名前空間の表記法を使用しているマークアップとの使用が有効になります。関数の使用を必要とするよりも大幅に単純です。適切にネストされ、閉じられた要素で構成されている必要があります。ロケータが無効な場合は、次のようなエラーが生成されます。返され、警告が生成されます。適切にネストされ、閉じられている要素のみで構成されているかどうかを判断するためにチェックされません。コードインジェクションは、権限やデータへの不正アクセス権を取得するために、悪意のあるコードがシステムに導入された場合に発生します。これは、ユーザーが入力したデータの型や内容について開発者が行なった想定の悪用に基づいています。ファイル内で見つかったものと一致させることで承認を処理するアプリケーションのケースです。ステートメントと同等です。アプリケーションでは、次のようにログインプロセスが処理される可能性があります。$file.");?>入力時にはチェックが実行されません。入力することで、テストを「回避」できることを意味します。次のように評価されます。属性に一致する次の式と同じです。定義内に挿入される変数名を単に引用符で囲むだけです。フォームから渡された値が強制的に文字列に変換されます。インジェクション攻撃を回避する際に推奨されることの多い方法と同じです。インジェクションを回避するための方法と同じです。アプリケーションでは、テストされていないユーザーデータは許可されません。ユーザーが送信したすべてのデータの型をチェックします。不正な型のデータは拒否または変換します。数値データに範囲外の値が含まれていないかをテストします。範囲外の値は切り捨てるか、丸めるか、拒否します。文字列に不正な文字が含まれていないかをテストし、不正な文字が含まれる入力は削除するか拒否します。明示的なエラーメッセージは、システムを危険にさらすために使用できる手がかりを未承認ユーザーに与える可能性があるため、出力しないでください。その代わりに、ファイルやデータベーステーブルにログを記録してください。ファイルをスキャンして構造を明らかにできます。クライアントに返送される出力をチェックすることも重要です。関数を使用すると何が発生する可能性があるのかを検討します。単一の出力行としてユーザーに提供されます。追加の保護手段として、ユーザーに返される前に出力のテストも行うべきです。次に、単純な例を示します。sec)一般に、ユーザーにデータをセキュアに返すためのガイドラインは、ユーザー入力を受け入れるためのガイドラインと同じです。それらは、次のように要約できます。常に、出力データの型および許可される値をテストします。未承認ユーザーがエラーメッセージを表示することを許可しないでください。アプリケーションに関する情報が提供される可能性があり、それを悪用されるおそれがあります。