ja:rule:inp:バリデーションする前に全ての変換作業を行う
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| ja:rule:inp:バリデーションする前に全ての変換作業を行う [2016/03/05 22:02] – [適合コード例] yohgaki | ja:rule:inp:バリデーションする前に全ての変換作業を行う [2017/07/04 01:09] (current) – [適合コード例] yohgaki | ||
|---|---|---|---|
| Line 3: | Line 3: | ||
| バリデーションを行うデータはバリデーションを行う前に全ての変換作業を行わなければならない。変換作業を後で行うとバリデーションが無意味となる場合が多々ある。 | バリデーションを行うデータはバリデーションを行う前に全ての変換作業を行わなければならない。変換作業を後で行うとバリデーションが無意味となる場合が多々ある。 | ||
| - | * Unicode文字の正規化(NFCなど) | + | * Unicode文字の正規化(NFKCなど) |
| * 文字エンコーディング変換(SJISからUTF-8など) | * 文字エンコーディング変換(SJISからUTF-8など) | ||
| * 全角/半角変換 | * 全角/半角変換 | ||
| Line 15: | Line 15: | ||
| バリデーションを行ってから変換を行うと、バリデーションの意味が無くなる場合多い。mb_convert_kana($str, | バリデーションを行ってから変換を行うと、バリデーションの意味が無くなる場合多い。mb_convert_kana($str, | ||
| + | <color # | ||
| <code php> | <code php> | ||
| // | // | ||
| Line 27: | Line 28: | ||
| 適合コードはバリデーションの前に必要な変換作業を行う。これによりバリデーションロジックが正しく異常な入力を検出できるようになる。 | 適合コードはバリデーションの前に必要な変換作業を行う。これによりバリデーションロジックが正しく異常な入力を検出できるようになる。 | ||
| + | <color # | ||
| <code php> | <code php> | ||
| $param = mb_convert_kana($_GET[' | $param = mb_convert_kana($_GET[' | ||
| Line 37: | Line 39: | ||
| ===== 例外 ===== | ===== 例外 ===== | ||
| - | [ルール/推奨事項の例外] | + | ソフトウェアへの入力バリデーションは入力データ処理の初めに実施しなければならない。入力バリデーションは初めに実施しなければならない処理だが、データ変換処理はその前に行わなければならない。 |
| ===== リスク評価 ===== | ===== リスク評価 ===== | ||
| - | [ルール/推奨事項のリスク評価] | + | 入力バリデーションの後にデータの変換操作を行うと、攻撃者にセキュリティ対策用のバリデーター/フィルターなどをバイパスさせる抜け道をつくる。この問題は任意コード実行を許すことになりえる。 |
| - | [評価例 - 英語表記に統一] | ||
| ^ Rule ^ Severity ^ Likelihood ^ Remediation Cost ^ Priority ^ Level ^ | ^ Rule ^ Severity ^ Likelihood ^ Remediation Cost ^ Priority ^ Level ^ | ||
| - | | IDS05-J | + | | | critical |
| ===== 関連ガイドライン ===== | ===== 関連ガイドライン ===== | ||
| ===== 参考文献 ===== | ===== 参考文献 ===== | ||
| + | |||
| + | * [[https:// | ||
ja/rule/inp/バリデーションする前に全ての変換作業を行う.1457215320.txt.gz · Last modified: 2016/03/05 22:02 by yohgaki
