ja:rule:out:外部へ出力するデータはデフォルトで全て無害化する
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revision | |||
| ja:rule:out:外部へ出力するデータはデフォルトで全て無害化する [2017/06/30 20:21] – [適合コード例(Validation)] yohgaki | ja:rule:out:外部へ出力するデータはデフォルトで全て無害化する [2017/10/25 00:20] (current) – コンテクストの解説追加 yohgaki | ||
|---|---|---|---|
| Line 27: | Line 27: | ||
| これらの何れかの手段を出力するデータ**全て**に適用する。 | これらの何れかの手段を出力するデータ**全て**に適用する。 | ||
| + | |||
| + | 出力先の無害化は”コンテクスト”によって異る。必ず適切な無害化方法を使用する。 | ||
| + | |||
| + | 例:SQLの出力先コンテクスト | ||
| + | |||
| + | * パラメーター (パラメーター用エスケープまたはパラメーター用プレイスホルダ) | ||
| + | * 識別子 (テーブル名、カラム名など。識別子用エスケープ) | ||
| + | * SQL語句 (DESC、ASCなど。バリデーション) | ||
| + | パラメーターには更にコンテクストがある。全てのコンテクストに対して適切な無害化が必要 | ||
| + | * LIKEクエリ (LIKE用エスケープ) | ||
| + | * 正規表現 (正規表現用エスケープ) | ||
| + | * バイナリ型 (バイナリ型用エスケープ) | ||
| + | * 配列型 (パラメーター用またはバイナリ型用のエスケープ) | ||
| + | * JSON型 (JSON用エスケープ) | ||
| + | * その他、全てのコンテクストに対して適切な無害化処理 | ||
| エスケープはコンテクストに合わせて行わなければならない。例えば、SQLインジェクション対策としてエスケープ/エスケープが必要ないAPIを利用しても、LIKEクエリや正規表現をサポートするDBMSの場合、LIKEクエリのエスケープ、正規表現のエスケープが必要となる。 | エスケープはコンテクストに合わせて行わなければならない。例えば、SQLインジェクション対策としてエスケープ/エスケープが必要ないAPIを利用しても、LIKEクエリや正規表現をサポートするDBMSの場合、LIKEクエリのエスケープ、正規表現のエスケープが必要となる。 | ||
ja/rule/out/外部へ出力するデータはデフォルトで全て無害化する.1498854065.txt.gz · Last modified: 2017/06/30 20:21 by yohgaki
