[WEB] CORS(Cross-origin resource sharing)


この文章は今日学んだCORSを簡単にまとめ、転記するために、いくつかの不実な説明があるかもしれません.
初めてCORSに触れた方は次の薄いコード辞書のビデオyoungトレイ「初めてCORSに触れた人に」がおすすめです👍








1.CORSとSOP


ㄴCross Originリソース共有(クロスソースリソース共有方式)


ㄴSame-Originポリシー(同一ソースポリシー)




  • ブラウザのデフォルトはSOPで、
  • は同じソースポリシーを使用します.
  • 、すなわち、API等のデータアクセスを同一ソース(同一URL)上でのみ提供する:
  • は、信頼できるソースからのデータへのアクセスのみを許可し、CSRF 공격
  • へのアクセスを阻止する.
    異なるソースでリソースを共有するために
  • を解放するには、CORSオプション
  • を設定する必要があります.



など🖐, CSRF攻撃とはspan>

CSRF(Cross-site request偽造、CSRF、XSRF)とは、サイト間要求の偽造またはサイト間要求の偽造を指す.

ウェブサイトの脆弱性攻撃の1つは,ユーザが自分の意思を顧みず,攻撃者の意図する行為(修正,削除,登録など)を特定のウェブサイトに要求する攻撃である.p>








2.CORSオプションの設定



要求を受けたバックエンドでは、CORSを許可するソースを予め指定しておけば、クロスソースリソースを共有することができる



方法1)。jspファイルでの設定



.jspファイルの上部に<% response.setHeader("Access-Control-Allow-Origin", "*"); %>
を設定
(「*」に設定されているため、すべてのページが要求できます)





方法2)Tomcatサーバへのフィルタの適用



Tomcatサーバのweb.次のコードをxml

に追加します.
<filter>
   <filter-name>CorsFilter</filter-name>
   <filter-class>org.apache.catalina.filters.CorsFilter</filter-class>
   <init-param>
      <param-name>cors.allowed.origins</param-name>
      <param-value>*</param-value>
   </init-param>
</filter>
<filter-mapping>
   <filter-name>CorsFilter</filter-name>
   <url-pattern>*</url-pattern>
</filter-mapping> 

(同様に、*に設定されているため、すべてのページが要求可能)