๐Ÿค” cookie options CORS

lim1313ยท2021๋…„ 10์›” 23์ผ
0

ERROR ๋ฆฌ๋ทฐ

๋ชฉ๋ก ๋ณด๊ธฐ
8/8

๐Ÿค” ๋ฌธ์ œ์ƒํ™ฉ

cross origin์—์„œ http://localhost:4000/login ์œผ๋กœ post ์š”์ฒญ์„ ๋ณด๋‚ด์—ˆ์„ ๋•Œ, ํ—ค๋”์— set-cookie๋Š” ์ž˜ ๋ณด๋‚ด์ง€๋งŒ, ๋ธŒ๋ผ์šฐ์ €์—์„œ cookie๋ฅผ ์ €์žฅํ•˜์ง€ ๋ชปํ•˜๊ณ  ์žˆ๋‹ค.

์ฟ ํ‚ค์˜ ์˜ต์…˜์€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์„ค์ •ํ•˜์˜€๋‹ค.

app.use(
  session({
    secret: 'codecode',
    resave: false,
    saveUninitialized: true,
    cookie: {
      domain: 'localhost',
      path: '/',
      maxAge: 24 * 6 * 60 * 10000,
      sameSite: 'none',
      httpOnly: true,
      secure: true,
    },
  })
);


์‘๋‹ต header์— set-cookie ๊ฐ€ ๋“ค์–ด๊ฐ€ ์žˆ์ง€๋งŒ

cookie๊ฐ€ ์ €์žฅ๋˜์ง€ ์•Š๋Š”๋‹ค.


๐Ÿค” ๋ฌธ์ œ ํŒŒ์•…

This attempt to set a cookie via set-cookie header was blocked because it had the 'samesite=none' attribute but did not have the 'secure' attribue, which is requried in order to use 'samesite=none'.

์—๋Ÿฌ ๋ฉ”์‹œ์ง€์ด๋‹ค.


๐Ÿ˜Ž ๋ฌธ์ œ ํ•ด๊ฒฐ

app.use(
  session({
    secret: 'codecode',
    resave: false,
    saveUninitialized: true,
    cookie: {
      domain: 'localhost',
      path: '/',
      maxAge: 24 * 6 * 60 * 10000,
      sameSite: 'Lax',
      httpOnly: true,
      secure: false,
    },
  })
);

sameSite ์˜ต์…˜

์š”์ฒญ์„ ๋ฐ›์€ ๊ฒฝ์šฐ ์š”์ฒญ์—์„œ ์‚ฌ์šฉํ•œ ๋ฉ”์†Œ๋“œ์™€ ํ•ด๋‹น ์˜ต์…˜์˜ ์กฐํ•ฉ์œผ๋กœ ์„œ๋ฒ„์˜ ์ฟ ํ‚ค ์ „์†ก ์—ฌ๋ถ€๋ฅผ ๊ฒฐ์ •ํ•˜๊ฒŒ ๋œ๋‹ค.

  • Lax : Lax์˜ ๊ฒฝ์šฐ ๋ฌด์กฐ๊ฑด SameSite ์ธ์ง€ ์ฒดํฌํ•˜๊ณ , ํ—ˆ์šฉ๋œ ๋ช‡๊ฐœ์˜ ํŒจํ„ด ์ด์™ธ์—๋Š” SameSite๊ฐ€ ์•„๋‹ˆ๋ฉด ์ฟ ํ‚ค๋ฅผ ์ „์†กํ•˜์ง€ ์•Š๋„๋ก ํ•œ๋‹ค.
  • Strict : Cross-Origin์ด ์•„๋‹Œ same-site ์ธ ๊ฒฝ์šฐ์—๋งŒ ์ฟ ํ‚ค๋ฅผ ์ „์†ก ํ•  ์ˆ˜ ์žˆ๋‹ค.
  • None: ํ•ญ์ƒ ์ฟ ํ‚ค๋ฅผ ๋ณด๋‚ด์ค„ ์ˆ˜ ์žˆ๋‹ค. ๋‹ค๋งŒ ์ฟ ํ‚ค ์˜ต์…˜ ์ค‘ Secure ์˜ต์…˜์ด ํ•„์š”ํ•˜๋‹ค.

same-origin์ด ์•„๋‹ˆ๋‹ค!! (same-site์ด๋‹ค!!)

์ด๋•Œ 'same-site'๋Š” ์š”์ฒญ์„ ๋ณด๋‚ธ Origin๊ณผ ์„œ๋ฒ„์˜ ๋„๋ฉ”์ธ์ด ๊ฐ™์€ ๊ฒฝ์šฐ๋ฅผ ๋งํ•œ๋‹ค.

๋‚ด๊ฐ€ ๋ณด๋‚ธ ์š”์ฒญ์€ cross site์—์„œ post /login ์š”์ฒญ์ด๊ธฐ ๋•Œ๋ฌธ์—, sameSite ์˜ต์…˜์„ Lax, strict, None์œผ๋กœ ์ง€์ •ํ•ด์•ผํ•˜์ง€๋งŒ, none์ธ ๊ฒฝ์šฐ์—๋Š” secure์„ ํ•จ๊ป˜ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค.
secure์˜ ๊ฒฝ์šฐ https ํ”„๋กœํ† ์ฝœ์„ ์ด์šฉํ•˜์—ฌ ํ†ต์‹ ํ•˜๋Š” ๊ฒฝ์šฐ์—๋งŒ ์ฟ ํ‚ค๋ฅผ ์ „์†กํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์—, Lax ํ˜น์€ strict์˜ต์…˜์„ ์ฃผ์–ด์•ผ ํ•œ๋‹ค.

profile
start coding

0๊ฐœ์˜ ๋Œ“๊ธ€