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を防ぐ