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/06/30 15:11] – [出力] yohgakija:rule:出力 [2017/07/04 01:30] (current) – [出力] yohgaki
Line 5: Line 5:
 出力の3原則 出力の3原則
  
-  * エスケープ - 出力先のシステムが誤作動しない**確実に安全な形式にエンコーディング**する +  * **エスケープ** - 出力先のシステムが誤作動しない**確実に安全な形式にエンコーディング**する 
-  * 安全なAPI - 出力先のシステムが誤作動しない**確実に安全なAPIを安全な方法で利用**する +  * **安全なAPI** - 出力先のシステムが誤作動しない**確実に安全なAPIを安全な方法で利用**する 
-  * バリデーション - 出力先のシステムが誤作動しない**確実に安全な形式であることを検証**する+  * **バリデーション** - 出力先のシステムが誤作動しない**確実に安全な形式であることを検証**する
  
 出力の3原則により「**出力データによって出力先が誤作動しない**」ことを保証できる。出力先にはコンテクストがあり、出力の3原則はどれか一つ使えば良いものでない。コンテクスト、利用できるAPIなどをコンテクストに合わせて適切に利用しなければならない。 出力の3原則により「**出力データによって出力先が誤作動しない**」ことを保証できる。出力先にはコンテクストがあり、出力の3原則はどれか一つ使えば良いものでない。コンテクスト、利用できるAPIなどをコンテクストに合わせて適切に利用しなければならない。
Line 35: Line 35:
 入力データには3種類が存在する。 入力データには3種類が存在する。
  
-  * 正しいデータ +  * **正しいデータ** 
-  * 入力ミスのデータ +  * **入力ミスのデータ** 
-  * 不正なデータ+  * <color #ed1c24>**不正なデータ**</color>
  
 「不正なデータ」を正しく処理する責任は入力処理コードが、「入力ミスのデータ」を正しく処理する責任はビジネスロジック(MVCのモデル)が所有する。 「不正なデータ」を正しく処理する責任は入力処理コードが、「入力ミスのデータ」を正しく処理する責任はビジネスロジック(MVCのモデル)が所有する。
Line 44: Line 44:
  
   * [[.:out:外部へ出力するデータはデフォルトで全て無害化する]]   * [[.:out:外部へ出力するデータはデフォルトで全て無害化する]]
 +  * [[.:out:SQLクエリを無害化する]]
 +  * [[.:out:LDAPクエリを無害化する]]
 +  * [[.:out:XPATHクエリを無害化する]]
 +  * [[.:out:HTML出力を無害化する]]
 +  * [[.:out:JavaScript文字列を無害化する]]
 +  * [[.:out:JSON文字列を無害化する]]
 +  * [[.:out:コマンド文字列を無害化する]]
 +  * [[.:out:正規表現文字列を無害化する]]
 +  * [[.:out:mail送信を無害化する]]
 +  * [[.:out:ファイルパスを無害化する]]
   * [[.:out:出力バリデーションにブラックリスト方式を用いない]]   * [[.:out:出力バリデーションにブラックリスト方式を用いない]]
   * [[.:out:エスケープの必要がないAPIの制限を熟知する]]   * [[.:out:エスケープの必要がないAPIの制限を熟知する]]
   * [[.:out:入力処理時のバリデーションを出力処理時のバリデーションとしない]]   * [[.:out:入力処理時のバリデーションを出力処理時のバリデーションとしない]]
   * [[.:out:PCREメタ文字のエスケープはデリミター文字を指定する]]   * [[.:out:PCREメタ文字のエスケープはデリミター文字を指定する]]
 +  * [[.:out:]]
  
 ===== 注意事項 ===== ===== 注意事項 =====
ja/rule/出力.1498835503.txt.gz · Last modified: 2017/06/30 15:11 by yohgaki

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki