LoginSignup
0
1

More than 5 years have passed since last update.

Web application security 対策のまとめ

Last updated at Posted at 2016-06-20

web セキュリティ対策について、忘れずにメッモします。

出力に関するセキュリティ対策

SQLインジェクション

● 静的プレースホルダ:「準備された文(Prepared Statement)」, データベースエンジン側がバインド処理します。
● 動的プレースホルダ : パラメータのバインド処理はアプリケーション側のライブラリ内で実行する。セキュリティの観点では、プレースホルダを用いたバインド処理によってパラメータの値の埋め込み。
● 他の: ストアドプロシージャ, すべてのユーザからの入力をエスケープ

クロスサイト・スクリプティング(xss)

● レスポンス内でHTMLタグなど要素をエスケープしてまたはダブルクォートで囲む、ファイルをダウンロードさせないように。
● HTTP レスポンスヘッダ: Content- typeに文字コード(charset) を指定する。

コマンドインジェクション

パラメータによって悪意なコマンドを実行する。
● OSコマンドがある関数を使わないことをチェックする。

メールヘッダ・インジェクション

HTTPヘッダ・インジェクション

データ

パスワード やクレジットカード番号、個人情報、プライ バシー情報等は出力に不必要な重要情報が出ないか、キャッシュされないか、ソルトのハッシュ化し保存するか、input要素のautocomplete属性に”off”を 指定するか、オートコンプリートを無効化するか。
パラメータの取り扱いはGETメソッドを用いず,必ずPOSTで送信する。

ログ

セキュリティインシデント発生時調査が行います。しかし、情報が詳しいすぎるとログファイルはセキュリティー問題になってしまうこともそれがあります。

フィッシング

入力に関するセキュリティ対策

入力チェック

不正な文字エンコーディングをエラーにする。
力値チェックは必ずサーバ側でチェックする。
アップロードファイルの拡張子、サイズ、ヘッダ情報をチェックする。

処理(ロージク)に関するセキュリティ対策

クロスサイト・リクエスト・フォージェリ(CSRF)

Cookie
Basic認証
クライアント認証
POSTメソッドでアクセスする
秘密情報にhiddenパラメータ」を挿入する。
ケースよりユーザを再認証する

セッション管理

セッションidはユーザより区別する。
セッションidの長さは128bit以上指定する。
セッションはPOSTでhiddenパラメータに指定する。
要件よりセッション有効期限を設定する。
セッションが終了するとき、ログアウトを提供する。

アクセス制御

機能により最小にアクセス制御を設定する。

情報の暗号

暗号アルゴリズムと鍵長を利用する。

脆弱性

プログラム言語より脆弱性があるコードを利用しないように。
汎用ライブラリを利用する場合は脆弱性をチェックする。

参考

安全なSQLの呼び出し方
The Web Application Hacker's Handbook
安全なWebアプリケーションの作り方

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1