ja:rule:out:入力処理時のバリデーションを出力処理時のバリデーションとしない
Differences
This shows you the differences between two versions of the page.
| Next revision | Previous revision | ||
| ja:rule:out:入力処理時のバリデーションを出力処理時のバリデーションとしない [2016/03/21 21:52] – created yohgaki | ja:rule:out:入力処理時のバリデーションを出力処理時のバリデーションとしない [2016/06/28 09:24] (current) – [適合コード例] yohgaki | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| ====== 入力処理時のバリデーションを出力処理時のバリデーションとしない ====== | ====== 入力処理時のバリデーションを出力処理時のバリデーションとしない ====== | ||
| - | [概要] | + | 入力処理時のバリデーションは入力のコンテクスト、出力時のバリデーションには出力のコンテクストに合わせてバリデーションする。 |
| + | |||
| ===== 非適合コード例 ===== | ===== 非適合コード例 ===== | ||
| - | [ルール/推奨事項に適合しないコードおよびその解説。複数あってよい。] | + | <code php> |
| + | <?php | ||
| + | function validate_age($val) { | ||
| + | // Webの入力は全て文字列 | ||
| + | if (strspn($val, | ||
| + | throw Exception(' | ||
| + | } | ||
| + | if ($val > 0 || $val < 130) { | ||
| + | throw Exception(' | ||
| + | } | ||
| + | return (int)$val; | ||
| + | } | ||
| + | |||
| + | // 入力バリデーション | ||
| + | $age = validate_age($_GET[' | ||
| + | |||
| + | |||
| + | // 様々な処理。出力時のコードは入力処理コードと同じファイルにあるとは限らない。 | ||
| + | |||
| + | // コマンドのパラメーターとして利用。 | ||
| + | if (!is_int($age)) { | ||
| + | throw Exception(' | ||
| + | } | ||
| + | exec(' | ||
| + | |||
| + | </ | ||
| ===== 適合コード例 ===== | ===== 適合コード例 ===== | ||
| - | [ルール/推奨事項に適合するコードおよびその解説。複数あって構わない。その場合、セクション名の後に" | + | <code php> |
| + | <?php | ||
| + | function validate_age($val) { | ||
| + | // Webの入力は全て文字列 | ||
| + | if (strspn($val, | ||
| + | throw Exception(' | ||
| + | } | ||
| + | if ($val > 0 || $val < 130) { | ||
| + | throw Exception(' | ||
| + | } | ||
| + | return (int)$val; | ||
| + | } | ||
| + | |||
| + | // 入力バリデーション | ||
| + | $age = validate_age($_GET[' | ||
| + | |||
| + | |||
| + | // 様々な処理。出力時のコードは入力処理コードと同じファイルにあるとは限らない。 | ||
| + | |||
| + | // コマンドのパラメーターとして利用。 | ||
| + | if (!is_int($age)) { | ||
| + | throw Exception(' | ||
| + | } | ||
| + | exec(' | ||
| + | </ | ||
| ===== 例外 ===== | ===== 例外 ===== | ||
| - | [ルール/推奨事項の例外] | + | 入力、出力で同じバリデーションロジックを共有できる場合もある。 |
| ===== リスク評価 ===== | ===== リスク評価 ===== | ||
ja/rule/out/入力処理時のバリデーションを出力処理時のバリデーションとしない.1458597142.txt.gz · Last modified: 2016/03/21 21:52 by yohgaki
