CORSμ λνμ¬(2)
Cross-Origin Resource Sharing(μ΄ν CORS)μ λν κΈμ λλ€.
CORS κΈ°λ³Έ λμ μμ
κ°λ°μλ APIλ₯Ό λ€λ£¨λ κ²μ μμ΄ μ’ μ’ Cross-Origin Resource Sharing(μ΄ν CORS) errorλ₯Ό λ§μ£Όν©λλ€.(νΉν FE κ°λ°μλ λμ±μ΄μ!)
μ ν΄λΌμ΄μΈνΈμ μλ² μ¬μ΄μ μλ λΈλΌμ°μ μλ CORSμ κ°μ μ μ± μ΄ μ‘΄μ¬ν κΉμ?
λ°λ‘ μΉμλ²λ₯Ό κ±°μ³μ μμ²νκΈ° λλ¬Έμ μ μ©λ μ μκΈ° λλ¬Έμ λλ€. μ΄λ₯Ό μ΄ν΄νκΈ° μν΄μ Same-Origin Policy(μ΄ν SOP)λ₯Ό μκ³ μμ΄μΌ ν©λλ€.
- SOPλ μΉ λΈλΌμ°μ μμ μ€νλλ μ€ν¬λ¦½νΈλ λ€λ₯Έ μΆμ²(origin)μμ λ‘λλ 리μμ€μ μνΈμμ©νλ κ²μ μ ννλ 보μ λ©μ»€λμ¦μ λλ€.
- SOPμ μμΈ μ¬νμ λλ κ²μ΄ CORSμ λλ€! μ μ± μμ νλ½νλ λ²μ λ΄μμ μΆμ²κ° 리μμ€λ₯Ό νμ©νκ±°λ μλ² μΈ‘μμ νΉμ ν€λλ₯Ό μ€μ νμ¬ SOPλ₯Ό μ°νν μ μκ² ν©λλ€.
λ¬Έλ κΆκΈν΄μ§λλ€. μΉμλ²λ₯Ό κ±°μΉλ©΄ μ΄λ»κ² μ μ©λ μ μμκΉμ?
μΉμλ²λ₯Ό ν΅ν΄ μμ²νλ©΄ ꡬ체μ μΌλ‘ μ΄λ»κ² μ μ©λ μ μλμ§ μμ보μμ΅λλ€.
- XSS 곡격: XSSλ μ μμ μΈ μ¬μ©μκ° μΉ νμ΄μ§μ μ μ± μ€ν¬λ¦½νΈλ₯Ό μ½μ νμ¬ λ€λ₯Έ μ¬μ©μμ λΈλΌμ°μ μμ μ€νλλλ‘ νλ 곡격μ λλ€. λ€λ₯Έ λλ©μΈμ 리μμ€μ μ κ·Όν μ μλ κ²½μ°, μ μ± μ€ν¬λ¦½νΈκ° ν¬ν¨λ μΉ νμ΄μ§μμλ λ€λ₯Έ λλ©μΈμ 리μμ€μ μ κ·Όνμ¬ μ 보λ₯Ό νμ·¨νκ±°λ μ‘°μν μ μμ΅λλ€.
- CSRF 곡격: CSRFλ μΈμ¦λ μ¬μ©μκ° μμ μ μμ§μλ 무κ΄νκ² κ³΅κ²©μμ μλμ λ°λΌ νΉμ μΉ μ¬μ΄νΈμ μμ²μ 보λ΄λ 곡격μ λλ€. λ€λ₯Έ λλ©μΈμ 리μμ€μ μ κ·Όν μ μλ κ²½μ°, μ μμ μΈ μΉ μ¬μ΄νΈμμλ μ¬μ©μμ μΈμ¦ μ 보λ₯Ό μ¬μ©νμ¬ λ€λ₯Έ λλ©μΈμ μλΉμ€μ μμ‘°λ μμ²μ μ μ‘ν μ μμ΅λλ€. μ΄λ¬ν 곡격μ λ°©μ§νκΈ° μν΄ SOPμ΄ λμ λ κ²μ΄κ³ , μΆμ² κ° ν΅μ μ μμ νκ² μ μ΄ν μ μλλ‘ CORSκ° μκ²Όμ΅λλ€.
λμκ° λ κΆκΈν΄μ§λλ€. κ·Έλ λ€λ©΄ μλ²μ μλ²μ ν΅μ μ CORSμ κ°μ μ μ± μ΄ μ‘΄μ¬ν κΉμ?
κ²°λ‘ λΆν° λ§νμλ©΄ μ‘΄μ¬νμ§ μμ΅λλ€. μλ²μ μλ² μ¬μ΄μμλ μΉμλ²μ κ°μ μ€κ° λ¨κ³ μμ΄ λ°λ‘ ν΅μ μ΄ μ΄λ£¨μ΄μ§κΈ° λλ¬Έμ λλ€. μλ²λ€μ μ λ’°ν μ μλ νκ²½μμ λμν©λλ€. μλ‘μ μ μμ νμΈνκ³ , ν΅μ λ°μ΄ν°λ₯Ό μνΈννμ¬ λ°μ΄ν°μ κΈ°λ°μ±κ³Ό 무결μ±μ 보μ₯νκΈ° λλ¬Έμ λλ€.
μΆμ² λΉκ΅ κ³Όμ μ λν μΌνκ² μκ³ μΆμ΄μ‘μ΅λλ€.
3νΈμμ λ§μ λ€λ£¨λλ‘ νκ² μ΅λλ€. λ§ν¬