IPAの「安全なWebサイトの作り方」を読んだのでまとめ
http://www.ipa.go.jp/security/vuln/websecurity.html
SQLインジェクションはプリアドステートメントを使って対策
エラーメッセージをブラウザに表示しない
OSコマンドインジェクション
なるべく使わないで使う場合は引数を全てチェックする
ファイルへのアクセス
ファイル名を指定する時はファイル名だけを取るようにしないと「../../a.txt」のような文字列で想定外のディレクトリのファイルを指定されるのでパスの中からファイル名だけを取得するようにする
ファイル名のチェックを行う
セッションの管理
セッションIDは乱数等から生成して、第三者が予測不可能にする
セッションIDをURLパラメータに格納しない
HTTPSで使うCookieにはsecure属性を指定してHTTPS以外で使えなくする
セッションはログイン後に開始する
クロスサイト・スクリプティング対策
入力された時じゃなくて出力の時にエスケープ処理をする用にして、出力するものにはすべてエスケープ処理を行う、文字コードの指定は必ず行う
スクリプトタグを動的に作らない
CSSを任意のサイトから取り込まないようにする
CSRF対策
登録情報等のユーザ情報を変更する時は変更する時にパスワード等の秘密情報を確認する
変更の直前にパスワードを入力させるか、直前のページで秘密情報を埋め込んで確認ページで確認する
ヘッダの取り扱い
HTTPヘッダ、メールヘッダ共に基本的にはユーザからの入力を使用する時は改行文字を取り除いてから使用する
その他
アクセス制御はしっかりとする
機密情報扱うならパスワードの入力を求める
0 件のコメント:
コメントを投稿