LoginSignup
0
0

More than 3 years have passed since last update.

[メモ]体系的に学ぶ 安全なWebアプリケーションの作り方

Last updated at Posted at 2020-06-14

体系的に学ぶ 安全なWebアプリケーションの作り方を読んだメモ

XSS

  • 悪意のあるサイトにリダイレクトして重要情報を入力させる
  • スクリプトを埋め込んで重要情報をURLに引き継いで悪意のあるサイトに遷移する

対策

  • エスケープする
  • JSで文字列を動的に生成するときも注意。JSでエスケープするか、hidden要素などでHTML側でエスケープしておいた要素を使用する

SQLインジェクション

対策

  • プレースホルダーを使用する
  • Like検索ではワイルドカードをエスケープする
  • 攻撃者に情報を与えないためにエラーメッセージを抑制する
  • 攻撃の被害を抑えるためにデータベースの権限を最低限にする

CSRF

  • 悪意のあるサイトにアクセス → ifameから正規のサイトへPOST → ログイン状態の場合セッションIDがつくのでPOSTできてしまう
  • 確認画面があるようなサイトでもifameの数を増やし、時差でアクセスすることで攻撃可能
  • 内部ネットワークでもルーターなどを管理者情報を持った端末が罠サイトを踏むとパスワードなど変更される恐れがある

対策

  • 購入、変更など重要ページでは再度パスワードを入力してもらう -実行直前のページに攻撃者が予測できないトークを入れて実行画面で確かめる
  • リファラーのチェック(自サイトからになっているか)

セッションハイジャック

  • セッション情報をURLに埋め込んでいるとサイトから別サイトに遷移した時にリファラーで漏洩する

オープンリダイレクタ脆弱性

実装でリダイレクト先のURLを外部から指定できる場合に発生
- 罠サイトにリダイレクトされる
- 配布サイトでマルウェアを配布されるなど

対策

  • リダイレクト先のドメインチェックをする
  • クッションページを挟む(あなたは...にアクセスしようとしています)

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

  • webサイトのフォームなどから意図しない相手にメール送付される
  • 本文を改ざんされる

対策

  • 改行を含まないようにする
  • 外部からのパラメーターを含ませない

ファイルダウンロードによるxss

  • jsファイルをhtmlと認識させユーザーのブラウザーで実行させる

対策

  • content typeを設定するなど
0
0
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
0