##セキュリティ対策一覧
######SQLインジェクション
1.バインド機構(prepare()とexecute())
2.エラーメッセージ非表示
######OSコマンドインジェクション
1.exec()やsystem()など外部コマンドを使っていなければ、phpの場合は大丈夫
######ディレクトリトラバーサル
1.ファイルへの直接書き込みはさせない
2.外部パラメータからの指定をさせない
######セッションハイジャック
1.セッションIDの保存はクッキーのみ、URL埋め込みによるセッション管理を禁止
2.XSS対策=セッションハイジャック対策
3.COOKIE送信はhttpsの時のみ
######XSS
1.HTTP レスポンスヘッダーに文字コードを指定する
2.HTML 要素の属性は""(ダブルクオーテーション)で囲む
3.出力する全ての要素に対してエスケープ処理を行う
4.URL は「http://」か「https://」で始まるもののみ出力する
5. 要素の内容を動的に生成しない
######CSRF
1.DB登録時はpostメソッドでhiddenパラメータを使う(確認画面経由する時)
2.クレカ利用の時は再度パスワード入力を促す
3.リファラーの確認(どうやってする?)
######HTTPヘッダインジェクション
1.htmlspecialchars(って大体デフォルトで入ってる)
######メールヘッダインジェクション
1.メールヘッダを固定
2.htmlで宛先を指定しない
3.外部からの入力に対して改行コードを全て削除する
######その他対策
・暗号化
ーemailアドレスとパスワードの暗号化
ー口座番号の暗号化
ーmcript。sha-256
・データベース、コードの定期的バックアップ
####第三者のチェックフローもできれば導入
・外部委託
・セキュリティ部門による内製
####IPAのセキュリティ関連ツール
- ウェブサイトの攻撃兆候検出ツール iLogScanner
- 脆弱性体験学習ツール AppGoat
- Androidアプリの脆弱性の学習・点検ツール AnCoLe
- セキュリティ要件確認支援ツール
- 学習コンテンツ
-「安全なウェブサイト運営入門」で体験する7つの事件
- セキュア・プログラミング講座 (WEB編・C++編)
####参考書、参考サイト
1.体系的に学ぶ 安全なWebアプリケーションの作り方
〜脆弱性が生まれる原理と対策の実践〜