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
์ธ์ง ์ฒดํฌํ๊ณ , ํ์ฉ๋ ๋ช๊ฐ์ ํจํด
์ด์ธ์๋ SameSite๊ฐ ์๋๋ฉด ์ฟ ํค๋ฅผ ์ ์กํ์ง ์๋๋ก ํ๋ค.same-site
์ธ ๊ฒฝ์ฐ์๋ง ์ฟ ํค๋ฅผ ์ ์ก ํ ์ ์๋ค.same-origin
์ด ์๋๋ค!! (same-site์ด๋ค!!)
์ด๋ 'same-site'๋ ์์ฒญ์ ๋ณด๋ธ Origin๊ณผ ์๋ฒ์ ๋๋ฉ์ธ์ด ๊ฐ์ ๊ฒฝ์ฐ๋ฅผ ๋งํ๋ค.
๋ด๊ฐ ๋ณด๋ธ ์์ฒญ์ cross site์์ post /login ์์ฒญ์ด๊ธฐ ๋๋ฌธ์, sameSite
์ต์
์ Lax
, strict
, None
์ผ๋ก ์ง์ ํด์ผํ์ง๋ง, none
์ธ ๊ฒฝ์ฐ์๋ secure
์ ํจ๊ป ์ฌ์ฉํด์ผ ํ๋ค.
secure
์ ๊ฒฝ์ฐ https ํ๋กํ ์ฝ์ ์ด์ฉํ์ฌ ํต์ ํ๋ ๊ฒฝ์ฐ์๋ง ์ฟ ํค๋ฅผ ์ ์กํ ์ ์๊ธฐ ๋๋ฌธ์, Lax
ํน์ strict
์ต์
์ ์ฃผ์ด์ผ ํ๋ค.