csrf & cors


CSRFとCORSはSpring Securityをセットした時に出会った2人のやつで、この2つの名前が似ているやつを整理したいと思っています.
SOP
Single-Origin Policy
リソースリクエストを他のソースに制限するポリシーと、リソースリクエストを許可するポリシーの2つがあります.これはSOP 은 같은 출처에서만 리소스를 공유할 수 있다のルールを持つ政策です.
CSRF
クロスサイトリクエスト転送、サイト間リクエストの偽造

CSRFはハッカーがウェブサイトに登録したユーザーに対して操作を強制する攻撃である.このため、CSRF攻撃は以下の条件を満たしてこそ可能となる.
  • ユーザーはハッカーによって作成されたネット釣りサイト
  • に接続されている.
  • ユーザーは、インスタグラム、Facebookなどの偽造要求を送信するサイトにログインします.
    CSRF攻撃プロセス
  • 犠牲者は偽造要求を送信したサイトに登録し、ハッカーが作成したネット釣りサイトに登録した.
  • 犠牲者がインターネットに登録されると、インターネット上で犠牲者と偽って、偽造して請求する.
  • の偽造要求を受けたサイトは、その要求に応答し、被害者の無意識な行為を実行する.
  • ...
    <img src="http://auction.com/changeUserAcoount?id=admin&password=admin" width="0" height="0">
    ...
    上記のラベルのついたコードのメールを送信すると、画像サイズが0になるので、全くわかりません.被害者が電子メールを開くと、URLが開いて画像ファイルを受信し、idとpwはadminに変更されます.
    防御方法
  • Referler検証
  • リクエストヘッダのリクエストに対して、1ページの情報を含むrefernerプロパティを検証し、切断します.
  • のようなドメインにリクエストがなければ、リクエストを切断することができます.
  • CSRF Tokenを使用
    これは、
  • の乱数をユーザセッションに保存し、ユーザのすべての要求をサーバ側で検証する方法である.
    // 로그인시, 또는 작업화면 요청시 CSRF 토큰을 생성하여 세션에 저장한다.
    session.setAttribute("CSRF_TOKEN",UUID.randomUUID().toString()); 
    // 요청 페이지에 CSRF 토큰을 셋팅하여 전송한다 
    <input type="hidden" name="_csrf" value="${CSRF_TOKEN}" />
  • CATCHAの使用
  • の画像が表示され、その画像に対応する文字/デジタル/画像ではない場合、要求は拒否される.
  • CORS
    Cross-Originリソース共有、ソース間共有リソース
    既存のブラウザポリシーでは、異なるドメインからのリソースが必要でない限り、他のドメインのリソースを安全な異種としてインポートできません.
    SOP, Single-Origin Policy
    リソースリクエストを他のソースに制限するポリシーと、リソースリクエストを許可するポリシーの2つがあります.これはSOP 은 같은 출처에서만 리소스를 공유할 수 있다のルールを持つ政策です.CORSは、ドメインが他のドメインのリソースを要求することを可能にする.ただし、他のドメインのリソースを使用するには、リクエストをプロトコルで完了する必要があります.
    CORS違反の解決方法
    CORSポリシー違反の問題を解決する最も代表的な方法は、サーバ上でAccess-Control-Allow-Originヘッダーに適切な値を設定することです.
    ワイルドカード*を入れると、すべてのURLからのリクエストが受信されることを意味します.そのため、簡単ですが安全な深刻な問題が発生する可能性があります.
    そのため、最もAccess-Control-Allow-Origin:https://www.naver.comのように出典を明記します.