๋‹ด๊ณฐ๋†
minkyung.dev
๋‹ด๊ณฐ๋†
์ „์ฒด ๋ฐฉ๋ฌธ์ž
์˜ค๋Š˜
์–ด์ œ
  • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (40)
    • ๐ŸŽ€ ํ”„๋กœ์ ํŠธ (6)
      • ์ธ์‚ฌ์ดํŠธ์•„์›ƒ (2)
      • ์บก์Šคํ†ค (2)
      • ์ž๋ฆฌ์–ด๋•Œ (1)
    • ๐Ÿ‘ฉ‍๐ŸŽค ํ”„๋ก ํŠธ์—”๋“œ (22)
      • react (5)
      • nextjs (4)
      • typescript (3)
      • javascript (4)
      • html (4)
      • css (2)
    • ๐Ÿงฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜ (2)
      • leetcode (1)
      • programmers (0)
    • ๐Ÿง  CS (1)
    • ๐ŸŽ ํšŒ๊ณ  (2)
    • private (0)
    • ๐Ÿง‘‍๐ŸŽค์ด์ง (0)

๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

  • ํ™ˆ
  • ํƒœ๊ทธ
  • ๋ฐฉ๋ช…๋ก

๊ณต์ง€์‚ฌํ•ญ

์ธ๊ธฐ ๊ธ€

ํƒœ๊ทธ

  • ESLint
  • leetcode
  • ์ธํ”„๋ŸฐX๋””ํ”„๋งŒ
  • ์ธํ”„๋Ÿฐ
  • ์•Œ๊ณ ๋ฆฌ์ฆ˜
  • github
  • ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค
  • react
  • javascript
  • vsCode
  • HTML
  • react-router
  • ๋””ํ”„๋งŒ
  • Django

์ตœ๊ทผ ๋Œ“๊ธ€

์ตœ๊ทผ ๊ธ€

ํ‹ฐ์Šคํ† ๋ฆฌ

hELLO ยท Designed By ์ •์ƒ์šฐ.
๋‹ด๊ณฐ๋†

minkyung.dev

๐ŸŽ€ ํ”„๋กœ์ ํŠธ

chrome์—์„œ set-cookie ์ž‘๋™ํ•˜์ง€ ์•Š์„ ๋•Œ

2023. 2. 22. 12:20
728x90
๋ฐ˜์‘ํ˜•

ํ˜„์žฌ ๋ฐฑ์—”๋“œ์—์„œ set-cookie ํ•ด์ฃผ๋Š” response๋Š” ์•„๋ž˜์™€ ๊ฐ™๋‹ค

access-control-allow-credentials: true
allow: POST, OPTIONS
connection: close
content-length: 21
content-type: application/json
date: Wed, 22 Feb 2023 03:04:31 GMT
referrer-policy: same-origin
server: gunicorn
set-cookie: access_token=value; expires=1:00:00; HttpOnly; Path=/; SameSite=None
set-cookie: refresh_token=value; expires=14 days, 0:00:00; HttpOnly; Path=/; SameSite=None
Vary: Accept, Origin, Accept-Encoding
x-content-type-options: nosniff
x-frame-options: DENY
X-Powered-By: Express

 

 

ํฌ๋กฌ์—์„œ๋Š” ์ œ๋Œ€๋กœ ์ฟ ํ‚ค๊ฐ€ ์„ค์ •๋˜์ง€ ์•Š๊ณ  ์•„๋ž˜ ๊ฒฝ๊ณ ๊ฐ€ ๋œฌ๋‹ค

Set-Cookie ํ—ค๋”์— SameSite=None ์†์„ฑ์ด Secrue ์†์„ฑ ์—†์ด ์„ค์ •๋˜์–ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์ฐจ๋‹จ๋˜์—ˆ๋‹ค๊ณ  ์ ํ˜€์žˆ๋‹ค.

 

SameSite๋ž€

์ฟ ํ‚ค๋ฅผ ๊ฐ™์€ ์‚ฌ์ดํŠธ๋กœ ๊ณ ๋ คํ•ด์•ผํ•˜๋Š”์ง€ ๋˜๋Š” ๊ฐ™์€ ์‚ฌ์ดํŠธ์—์„œ๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ์ œํ•œํ•  ์ˆ˜ ์žˆ๋„๋ก ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋Š” ์†์„ฑ์ด๋‹ค.

Lax

๊ฐ™์€ ๋„๋ฉ”์ธ์ด ์•„๋‹ˆ๋”๋ผ๋„ ์ผ๋ถ€ ๊ฒฝ์šฐ(๋งํฌ ์ด๋™) ํ—ˆ์šฉ

Strict

ํ˜„์žฌ ๋ธŒ๋ผ์šฐ์ €์˜ URL๊ณผ ์ฟ ํ‚ค์˜ ๋„๋ฉ”์ธ์ด ์ผ์น˜ํ•˜๋Š” ๊ฒฝ์šฐ์—๋งŒ ์ฟ ํ‚ค ์ „์†ก ๊ฐ€๋Šฅ

None

Set-Cookie: SameSite=None; Secure
  • ๋ชจ๋“  ๊ฒฝ์šฐ์— ์ ‘๊ทผ ๊ฐ€๋Šฅํ•˜๋‹ค
  • Secure ์†์„ฑ์„ ์‚ฌ์šฉํ•ด์•ผํ•˜๊ณ  ์‚ฌ์šฉํ•˜์ง€ ์•Š์„ ๊ฒฝ์šฐ ์ฟ ํ‚ค๊ฐ€ ์ฐจ๋‹จ๋œ๋‹ค.
  • Secure์€ HTTPS์œผ๋กœ ์š”์ฒญํ•ด์•ผ๋งŒ ์„œ๋ฒ„๋กœ ์ „์†ก๋œ๋‹ค. 

 

ํฌ๋กฌ์—์„œ ์ฟ ํ‚ค ์„ค์ • ๋ฐฉ์‹

  • 2020๋…„ 2์›”๋ถ€ํ„ฐ SameSite์˜ ๊ธฐ๋ณธ ๊ฐ’์ด None์—์„œ Lax๋กœ ๋ณ€๊ฒฝ๋˜์—ˆ๋‹ค. 
  • SameSite=None์œผ๋กœ ์„ค์ •ํ•˜๋Š” ๊ฒฝ์šฐ์—๋Š” HTTPS ์—ฐ๊ฒฐ์„ ํ†ตํ•ด์„œ๋งŒ ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋„๋ก Secure ์†์„ฑ์„ ์‚ฌ์šฉํ•ด์•ผํ•œ๋‹ค
  • http์™€ https๋ฅผ ์—ฐ๊ฒฐ์€ ํฌ๋กœ์Šค ์‚ฌ์ดํŠธ๋กœ ๊ฐ„์ฃผํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๊ฐ™์€ ํ”„๋กœํ† ์ฝœ์„ ์‚ฌ์šฉํ•ด์•ผํ•œ๋‹ค.

๊ตฌํ˜• ๋ธŒ๋ผ์šฐ์ € ํ˜ธํ™˜์„ฑ

๊ตฌํ˜• ๋ธŒ๋ผ์šฐ์ €๋Š” ์ƒˆ๋กœ ๋ฐ”๋€ None ํŠน์„ฑ๊ณผ ํ˜ธํ™˜๋˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ์ฟ ํ‚ค๊ฐ€ ์ฐจ๋‹จ๋  ์ˆ˜ ์žˆ๋‹ค.

SameSite=None์ด ํ˜ธํ™˜๋˜์ง€ ์•Š๋Š” ๋ธŒ๋ผ์šฐ์ € ๋ชฉ๋ก

 

1. SameStie=None; Secure ์ฟ ํ‚ค์™€ ์—†๋Š” ์ฟ ํ‚ค ๋ชจ๋‘ ์„ค์ •ํ•œ๋‹ค

Set-cookie: 3pcookie=value; SameSite=None; Secure
Set-cookie: 3pcookie-legacy=value; Secure

์ƒˆ ์ฟ ํ‚ค๋ฅผ ๋จผ์ € ํ™•์ธํ•˜๊ณ  ์—†์œผ๋ฉด ๊ธฐ์กด ์ฟ ํ‚ค๋กœ ๋Œ€์ฒดํ•œ๋‹ค.

 

์ด ๊ฒฝ์šฐ, ์ค‘๋ณต ์ฟ ํ‚ค๋ฅผ ์„ค์ •ํ•ด์•ผํ•œ๋‹ค๋Š” ๋‹จ์ ์ด ์žˆ๋‹ค.

 

2. Set-Cookie ํ—ค๋”๋ฅผ ๋ณด๋‚ด๋Š” ์‹œ์ ์— ๋ธŒ๋ผ์šฐ์ €๋ฅผ ๊ฐ์ง€ํ•œ๋‹ค

๋ธŒ๋ผ์šฐ์ €๋ฅผ ๊ฐ์ง€ํ•˜๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ (ex. Node.js์˜ ua-parser-js ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ)๋ฅผ ์‚ฌ์šฉํ•ด์„œ ์ง€์›ํ•˜์ง€ ์•Š๋Š” ๋ธŒ๋ผ์šฐ์ €์ธ ๊ฒฝ์šฐ์—๋Š” ๋ ˆ๊ฑฐ์‹œ ๋ฐฉ๋ฒ•์œผ๋กœ, ์ง€์› ๋ธŒ๋ผ์šฐ์ €๋Š” ์ƒˆ ์ฟ ํ‚ค ๋ฐฉ์‹์œผ๋กœ ์„ค์ •ํ•ด์ค€๋‹ค.

 

์ด ๊ฒฝ์šฐ, ๋ธŒ๋ผ์šฐ์ €๋ฅผ ๊ฐ์ง€ํ•˜๋Š” ๊ฒƒ์€ ์ทจ์•ฝํ•˜๊ณ  ๋ชจ๋“  ๋ธŒ๋ผ์šฐ์ €๋ฅผ ๊ฐ์ง€ํ•  ์ˆ˜ ์—†์„ ์ˆ˜๋„ ์žˆ๋‹ค๋Š” ๋‹จ์ ์ด ์žˆ๋‹ค.

 


 

์ฐธ๊ณ ๋กœ ํŒŒ์ด์–ดํญ์Šค์—์„œ๋Š” ์ œ๋Œ€๋กœ ์ฟ ํ‚ค์— ์„ค์ •์ด ๋œ๋‹ค

ํŒŒ์ด์–ดํญ์Šค๋Š” Firefox 69๋ถ€ํ„ฐ ํ…Œ์ŠคํŠธ ๋ฒ„์ „์„ ์ œ๊ณตํ•˜๊ณ  ์žˆ๊ณ  ๋‚˜์ค‘์— ํฌ๋กฌ๊ณผ ๊ฐ™์ด ๊ธฐ๋ณธ ๋™์ž‘์œผ๋กœ ๋งŒ๋“ค ์˜ˆ์ •์ด๋ผ๊ณ  ํ•œ๋‹ค.

 

 

 

https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Set-Cookie/SameSite

 

SameSite cookies - HTTP | MDN

The SameSite attribute of the Set-Cookie HTTP response header allows you to declare if your cookie should be restricted to a first-party or same-site context.

developer.mozilla.org

https://developers.google.com/search/blog/2020/01/get-ready-for-new-samesitenone-secure?hl=ko 

 

์ƒˆ๋กœ์šด SameSite=None; Secure ์ฟ ํ‚ค ์„ค์ •์— ๋Œ€๋น„  |  Google ๊ฒ€์ƒ‰ ์„ผํ„ฐ ๋ธ”๋กœ๊ทธ  |  Google Developers

์˜๊ฒฌ ๋ณด๋‚ด๊ธฐ ์ƒˆ๋กœ์šด SameSite=None; Secure ์ฟ ํ‚ค ์„ค์ •์— ๋Œ€๋น„ ์ปฌ๋ ‰์…˜์„ ์‚ฌ์šฉํ•ด ์ •๋ฆฌํ•˜๊ธฐ ๋‚ด ํ™˜๊ฒฝ์„ค์ •์„ ๊ธฐ์ค€์œผ๋กœ ์ฝ˜ํ…์ธ ๋ฅผ ์ €์žฅํ•˜๊ณ  ๋ถ„๋ฅ˜ํ•˜์„ธ์š”. 2020๋…„ 1์›” 16์ผ ๋ชฉ์š”์ผ ์ด ๊ฒŒ์‹œ๋ฌผ์€ Chromium ๊ฐœ๋ฐœ์ž ๋ธ”๋กœ

developers.google.com

https://web.dev/samesite-cookie-recipes/

 

SameSite ์ฟ ํ‚ค ๋ ˆ์„œํ”ผ

์ƒˆ๋กœ์šด SameSite=None ์†์„ฑ ๊ฐ’์˜ ๋„์ž…์œผ๋กœ ์‚ฌ์ดํŠธ๋Š” ์ด์ œ ์‚ฌ์ดํŠธ ๊ฐ„ ์‚ฌ์šฉ์„ ์œ„ํ•ด ์ฟ ํ‚ค๋ฅผ ๋ช…์‹œ์ ์œผ๋กœ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค. ๋ธŒ๋ผ์šฐ์ €๋Š” ๋‹ค์Œ์œผ๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค. SameSite ์†์„ฑ์ด ์—†๋Š” ์ฟ ํ‚ค๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ์ž์‚ฌ๋กœ ์ž‘

web.dev

 

728x90
๋ฐ˜์‘ํ˜•
    ๋‹ด๊ณฐ๋†
    ๋‹ด๊ณฐ๋†

    ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”