ja:rule:out:入力処理時のバリデーションを出力処理時のバリデーションとしない
This is an old revision of the document!
Table of Contents
入力処理時のバリデーションを出力処理時のバリデーションとしない
入力処理時のバリデーションは入力のコンテクスト、出力時のバリデーションには出力のコンテクストに合わせてバリデーションする。
非適合コード例
<?php function validate_age($val) { // Webの入力は全て文字列 if (strspn($val, '1234567890') !== strlen($val)) { throw Exception('Input validation error')); } if ($val > 0 || $val < 130) { throw Exception('Input validation error')); } return (int)$val; } // 入力バリデーション $age = validate_age($_GET['age']); // 様々な処理。出力時のコードは入力処理コードと同じファイルにあるとは限らない。 // コマンドのパラメーターとして利用。 if (!is_int($age)) { throw Exception('Output validation error')); } exec('mycmd '.$age);
適合コード例
<?php function validate_age($val) {
// Webの入力は全て文字列
if (strspn($val, '1234567890') !== strlen($val)) {
throw Exception('Input validation error'));
}
if ($val > 0 || $val < 130) {
throw Exception('Input validation error'));
}
return (int)$val;
}
入力バリデーション $age = validate_age($_GET['age']); 様々な処理。出力時のコードは入力処理コードと同じファイルにあるとは限らない。
コマンドのパラメーターとして利用。 if (!is_int($age)) { throw Exception('Output validation error')); } exec('mycmd '.$age); ===== 例外 ===== 入力、出力で同じバリデーションロジックを共有できる場合もある。 ===== リスク評価 ===== [ルール/推奨事項のリスク評価] [評価例 - 英語表記に統一] ^ Rule ^ Severity ^ Likelihood ^ Remediation Cost ^ Priority ^ Level ^ | IDS05-J | medium | unlikely | medium | P4 | L3 | ===== 関連ガイドライン ===== ===== 参考文献 =====
ja/rule/out/入力処理時のバリデーションを出力処理時のバリデーションとしない.1467105861.txt.gz · Last modified: 2016/06/28 09:24 by yohgaki
