User Tools

Site Tools


ja:rule:out:入力処理時のバリデーションを出力処理時のバリデーションとしない

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
ja:rule:out:入力処理時のバリデーションを出力処理時のバリデーションとしない [2016/03/21 21:52] – created yohgakija:rule:out:入力処理時のバリデーションを出力処理時のバリデーションとしない [2016/06/28 09:24] (current) – [適合コード例] yohgaki
Line 1: Line 1:
 ====== 入力処理時のバリデーションを出力処理時のバリデーションとしない ====== ====== 入力処理時のバリデーションを出力処理時のバリデーションとしない ======
  
-[概要]+入力処理時のバリデーションは入力のコンテクスト、出力時のバリデーションには出力のコンテクストに合わせてバリデーションする。 
 + 
  
 ===== 非適合コード例 ===== ===== 非適合コード例 =====
  
-[ール/推奨事項適合しないコおよびそ解説。複数あっよい]+<code php> 
 +<?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); 
 + 
 +</code> 
  
 ===== 適合コード例 ===== ===== 適合コード例 =====
  
-[ル/推奨事項に適合するコードおよびその解説。複数って構わない。その場合、セクショ後に"(適合パターン名)"を記述する]+<code php> 
 +<?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); 
 +</code>
  
  
 ===== 例外 ===== ===== 例外 =====
  
-[ルル/推奨事項の例外]+入力、出力で同じバリデションロジックを共有できる場合もある。
  
 ===== リスク評価 ===== ===== リスク評価 =====
ja/rule/out/入力処理時のバリデーションを出力処理時のバリデーションとしない.1458597142.txt.gz · Last modified: 2016/03/21 21:52 by yohgaki

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki