SQLインジェクション・XSS・CORS・CORSとは?
2021.12.10
代表的なWebアプリケーションの脆弱性とCORSについてまとめていきます。
SQLインジェクション
内容
Webサイトの入力フォームなどにSQL文の一部を入れることで、意図しないSQL文を発行し、情報の不正取得を行うこと
対策
- バリデーション(アポストロフィ'の禁止)
- プリアードステートメント SQL文の一部をプレースホルダとしてパラメータだけ割り当てる
XSS
内容
Webサイトにスクリプト(js)を埋め込めるサイトに攻撃者がjsを埋め込み、ブラウザ上で実行させること。Cookieを奪われたり。
対策
- サニタイジング(エスケープ処理)
- cookieの漏洩対策としては、「httponly属性」を加える
CSRF
内容
攻撃者がリクエストを偽装して、攻撃対象に対して不正リクエストを送信すること。ユーザーのセッションIDなどを不正取得して、攻撃者がなりすまして、攻撃対象のサイトに対してリクエストを送信
対策
- ワンタイムトークンの生成など
- XSSとの違いは、攻撃がブラウザでなくサーバー側で行われる
CORS
内容
Cross-Origin Resource Sharing。異なるオリジン(≒ドメイン)で、リソース共有できるか決める。API・サーバー側でCORSつけて、クライアントのオリジン(ドメイン)から読めるか決める。
必要性
- Same-origin Policy
- XSS, CSRFを防ぐ