====== 入力処理時のバリデーションを出力処理時のバリデーションとしない ======
入力処理時のバリデーションは入力のコンテクスト、出力時のバリデーションには出力のコンテクストに合わせてバリデーションする。
===== 非適合コード例 =====
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);
===== 適合コード例 =====
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 |
===== 関連ガイドライン =====
===== 参考文献 =====