User Tools

Site Tools


ja:rule:入力

Differences

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

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
ja:rule:入力 [2017/07/02 08:01] yohgakija:rule:入力 [2017/10/26 11:28] (current) – [ルール] yohgaki
Line 37: Line 37:
 入力仕様に則り「不正なデータ」は確実に入力処理(MVCモデルのコントローラー)で拒否されなければならない。「入力ミスのデータ」はビジネスロジック(MVCのモデル)により適切に処理される。 入力仕様に則り「不正なデータ」は確実に入力処理(MVCモデルのコントローラー)で拒否されなければならない。「入力ミスのデータ」はビジネスロジック(MVCのモデル)により適切に処理される。
  
-入力バリデーションエラーとなる入力は「不正なデータ」であり、正しく処理することが不可能なデータである。Fail Fast原則(出来る限り早く失敗させる原則)に則り、「不正なデータ」の拒否はソフトウェアがデータを受け入れた直後に行う。+
  
 ===== ルール ===== ===== ルール =====
  
 +  * [[.:inp:入力文字エンコーディングをバリデーションする]]
   * [[.:inp:バリデーションする前に全ての変換作業を行う]]   * [[.:inp:バリデーションする前に全ての変換作業を行う]]
   * [[.:inp:文字列を正規化する]]   * [[.:inp:文字列を正規化する]]
-  * [[.:inp:ファイルパスを正規化する]] 
   * [[.:inp:デフォルトで初期化される外部入力をバリデーションする]]   * [[.:inp:デフォルトで初期化される外部入力をバリデーションする]]
   * [[.:inp:正規表現に用いられる入力データにメタ文字がないことを確認する]]   * [[.:inp:正規表現に用いられる入力データにメタ文字がないことを確認する]]
   * [[.:inp:入力バリデーションにブラックリスト方式を用いない]]   * [[.:inp:入力バリデーションにブラックリスト方式を用いない]]
-  * [[.:inp:入力文字エンコーディングをバリデーションする]] 
   * [[.:inp:不要な入力パラメーターを含む場合に拒否する]]   * [[.:inp:不要な入力パラメーターを含む場合に拒否する]]
   * [[.:inp:入力を拒否した場合に適切な対応措置を取る]]   * [[.:inp:入力を拒否した場合に適切な対応措置を取る]]
Line 53: Line 52:
   * [[.:inp:署名、暗号化したデータのみを信頼する]]   * [[.:inp:署名、暗号化したデータのみを信頼する]]
   * [[.:inp:複数のCSRFトークンを利用する]]   * [[.:inp:複数のCSRFトークンを利用する]]
-  * [[.:inp:]] 
  
 ===== 参考文献 ===== ===== 参考文献 =====
Line 64: Line 62:
 出力対策は入力対策とは”**独立**”した対策である。出力対策は入力対策の有無に関わらず、出力対策のみで安全性を保証しなければならない。 出力対策は入力対策とは”**独立**”した対策である。出力対策は入力対策の有無に関わらず、出力対策のみで安全性を保証しなければならない。
  
 +入力コードでは「入力のコンテクスト」(データの種別)に応じたバリデーションを行う。出力コードでは「入力のコンテクスト」を判別できない場合がある。また、出力コードでは「出力先のコンテクスト」(出力先の種別、例:SQLならパラメーター、識別子、SQL語句)に応じたセキュリティ処理が必要となる。このため、入力コードでのデータバリデーションと出力コードでのデータバリデーションは異るモノである。
 +
 +入力バリデーションエラーとなる入力は「不正なデータ」であり、正しく処理することが不可能なデータである。**Fail Fast原則**(出来る限り早く失敗させる原則)に則り、「不正なデータ」の拒否はソフトウェアがデータを受け入れた直後に行う。
ja/rule/入力.1498982510.txt.gz · Last modified: 2017/07/02 08:01 by yohgaki

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki