Why not login to Qiita and try out its useful features?

We'll deliver articles that match you.

You can read useful information later.

3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Cookie ใฎ `__Host-` / `__Secure-` ใƒ—ใƒฌใƒ•ใ‚ฃใƒƒใ‚ฏใ‚นใจใฏ๏ผŸ ๅๅ‰ใงใ‚ปใ‚ญใƒฅใƒชใƒ†ใ‚ฃใ‚’ๅผทๅˆถใ™ใ‚‹ไป•็ต„ใฟ

3
Posted at

ใฏใ˜ใ‚ใพใ—ใฆใฎๆ–นใฏใฏใ˜ใ‚ใพใ—ใฆใ€ใใ†ใงใชใ„ๆ–นใฏใ“ใ‚“ใซใกใฏใ€‚็คพๅ†…ใงใฏใ€Œใ˜ใ‡ใฃใจใ€ใจๅ‘ผใฐใ‚Œใฆใ„ใพใ™ใ€‚ใชใœใใ†ๅ‘ผใฐใ‚Œใฆใ„ใ‚‹ใ‹ใฏ่ฟฝใ€…ใŠไผใˆใงใใ‚Œใฐใ„ใ„ใ‹ใชใจๆ€ใ„ใพใ™ใ€‚

ใ€Œcookieๅใซ __Host- ใŒไป˜ใ„ใฆใ‚‹ใ€โ€” ใ“ใ‚Œใฏไฝ•๏ผŸ

้–‹็™บไธญใฎใ‚ขใƒ—ใƒชใ‚„ใƒ–ใƒฉใ‚ฆใ‚ถใฎ้–‹็™บ่€…ใƒ„ใƒผใƒซใงไป–็คพใ‚ตใ‚คใƒˆใ‚’่ฆ—ใ„ใฆใ„ใฆใ€__Host-session ใ‚„ __Secure-token ใฎใ‚ˆใ†ใซใ€้ ญใซๅฆ™ใช่จ˜ๅทไป˜ใใฎๅๅ‰ใŒไป˜ใ„ใŸ cookie ใ‚’่ฆ‹ใ‹ใ‘ใŸใ“ใจใฏใชใ„ใงใ—ใ‚‡ใ†ใ‹ใ€‚ๆœ€ๅˆใซ่ฆ‹ใ‚‹ใจใ€Œใƒ•ใƒฌใƒผใƒ ใƒฏใƒผใ‚ฏใŒๅ†…้ƒจ็š„ใซไป˜ใ‘ใฆใ„ใ‚‹้ฃพใ‚Šใ€ใ€Œ็คพๅ†…ใฎๅ‘ฝๅ่ฆ็ด„ใฎใ‚ˆใ†ใชใ‚‚ใฎใ€ใจๆ€ใ„ใŒใกใงใ™ใ€‚ๅฎŸ้š›ใ€ใŸใ ใฎๅๅ‰ใชใ‚‰่‡ชๅˆ†ใงๅฅฝใใซไป˜ใ‘ๆ›ฟใˆใฆใ‚‚ใ‚ˆใ•ใใ†ใซ่ฆ‹ใˆใพใ™ใ€‚

ใ—ใ‹ใ—ใ“ใ‚Œใฏ้ฃพใ‚Šใงใ‚‚ๆ…ฃ็ฟ’ใงใ‚‚ใ‚ใ‚Šใพใ›ใ‚“ใ€‚__Host- / __Secure- ใงๅง‹ใพใ‚‹ๅๅ‰ใฏใ€ใƒ–ใƒฉใ‚ฆใ‚ถใŒใใฎๅๅ‰ใ‚’่ฆ‹ใฆๅ—็†ๆกไปถใ‚’ๅผทๅˆถใ™ใ‚‹ใ‚ปใ‚ญใƒฅใƒชใƒ†ใ‚ฃๆฉŸๆง‹ใงใ™ใ€‚ๆกไปถใ‚’ๆบ€ใŸใ•ใชใ„ Set-Cookie ใƒฌใ‚นใƒใƒณใ‚นใฏใ€ใƒ–ใƒฉใ‚ฆใ‚ถๅดใงไฟๅญ˜ใ•ใ‚Œใšใซๆจใฆใ‚‰ใ‚Œใพใ™ใ€‚ใ“ใฎ่จ˜ไบ‹ใงใฏใ€cookie ใฎๅฑžๆ€งใ‚’ใŠใ•ใ‚‰ใ„ใ—ใŸใ†ใˆใงใ€Œๅฑžๆ€งใ ใ‘ใงใฏๅกžใ’ใชใ„็ฉดใ€ใ‚’็คบใ—ใ€ใƒ—ใƒฌใƒ•ใ‚ฃใƒƒใ‚ฏใ‚นใŒใใฎ็ฉดใ‚’ใฉใ†ๅกžใใฎใ‹ใ‚’้ †ใซ่ฆ‹ใฆใ„ใใพใ™ใ€‚

ๅ‰ๆ๏ผšcookieใฎใ‚ปใ‚ญใƒฅใƒชใƒ†ใ‚ฃๅฑžๆ€งใ‚’ใŠใ•ใ‚‰ใ„

ใƒ—ใƒฌใƒ•ใ‚ฃใƒƒใ‚ฏใ‚นใฎ่ฉฑใซๅ…ฅใ‚‹ๅ‰ใซใ€cookie ใซไป˜ใ‘ใ‚‰ใ‚Œใ‚‹ไธปใชใ‚ปใ‚ญใƒฅใƒชใƒ†ใ‚ฃ้–ข้€ฃๅฑžๆ€งใ‚’ๆ•ด็†ใ—ใพใ™ใ€‚

ๅฑžๆ€ง ๅ‹•ไฝœ ๅฝนๅ‰ฒ๏ผๅŠนๆžœ
Secure https ใชใฉๅฎ‰ๅ…จใช็ตŒ่ทฏใงใฎใฟ cookie ใ‚’้€ไฟกใ™ใ‚‹ ๅนณๆ–‡ HTTP ใงใฎ็›—่ดใƒปๆผๆดฉใ‚’้˜ฒใ
HttpOnly JavaScript๏ผˆdocument.cookie ็ญ‰๏ผ‰ใ‹ใ‚‰ใฎ่ชญใฟๅ–ใ‚Šใ‚’็ฆๆญขใ™ใ‚‹ XSS ๆ™‚ใฎ cookie ็ชƒๅ–ใƒชใ‚นใ‚ฏใ‚’ไธ‹ใ’ใ‚‹
SameSite ๅˆฅใ‚ตใ‚คใƒˆใ‹ใ‚‰ใฎใƒชใ‚ฏใ‚จใ‚นใƒˆใซ cookie ใ‚’ไป˜ใ‘ใ‚‹ใ‹ใ‚’ๅˆถๅพก๏ผˆLax/Strict/None๏ผ‰ CSRF๏ผˆใ‚ฏใƒญใ‚นใ‚ตใ‚คใƒˆใƒชใ‚ฏใ‚จใ‚นใƒˆ๏ผ‰ใฎใƒชใ‚นใ‚ฏใ‚’ไธ‹ใ’ใ‚‹
Domain cookie ใ‚’้€ใ‚‹ๅฏพ่ฑกใƒ›ใ‚นใƒˆใฎ็ฏ„ๅ›ฒใ‚’ๆŒ‡ๅฎšใ™ใ‚‹๏ผˆๆŒ‡ๅฎšใ™ใ‚‹ใจใ‚ตใƒ–ใƒ‰ใƒกใ‚คใƒณใซใ‚‚ๅฑŠใ๏ผ‰ ้€ใ‚‹็ฏ„ๅ›ฒใ‚’ๆฑบใ‚ใ‚‹๏ผˆ้˜ฒๅพกๅฑžๆ€งใงใฏใชใ„๏ผ‰
Path cookie ใ‚’้€ใ‚‹ๅฏพ่ฑกใƒ‘ใ‚นใ‚’็ตžใ‚‹ ้€ใ‚‹็ฏ„ๅ›ฒใ‚’ๆฑบใ‚ใ‚‹๏ผˆ้˜ฒๅพกๅฑžๆ€งใงใฏใชใ„๏ผ‰

ใ“ใ“ใงๆณจๆ„ใ—ใŸใ„ใฎใฏใ€Domain ใจ Path ใฏใ€Œcookie ใ‚’้€ใ‚‹็ฏ„ๅ›ฒใ‚’ๅบƒใ’ใ‚‹/็ตžใ‚‹ใ€ใŸใ‚ใฎๅฑžๆ€งใงใ‚ใฃใฆใ€ใใ‚Œ่‡ชไฝ“ใฏๆ”ปๆ’ƒใ‚’้˜ฒใใŸใ‚ใฎใ‚‚ใฎใงใฏใชใ„ใจใ„ใ†็‚นใงใ™ใ€‚ใจใใซ Domain ใฏใ€ๆŒ‡ๅฎšใ™ใ‚‹ใจๆŒ‡ๅฎšใƒ‰ใƒกใ‚คใƒณใจใใฎใ‚ตใƒ–ใƒ‰ใƒกใ‚คใƒณๅ…จไฝ“ใซ cookie ใŒๅฑŠใใ‚ˆใ†ใซใชใ‚Šใ€็ฏ„ๅ›ฒใ‚’ๅบƒใ’ใ‚‹ๅƒใใ‚’ใ—ใพใ™ใ€‚ใ“ใฎใ€Œ็ฏ„ๅ›ฒใฎ็ทฉใ•ใ€ใŒใ€ๆฌกใซ่ฆ‹ใ‚‹ๆ”ปๆ’ƒใฎ็ฉดใซใคใชใŒใ‚Šใพใ™ใ€‚

ๅฑžๆ€งใ ใ‘ใงใฏ้˜ฒใ’ใชใ„ๆ”ปๆ’ƒ

cookie ใฎๅฑžๆ€งใฏใ€ใ‚ใใพใงใ€Œใ‚ตใƒผใƒใŒๆญฃใ—ใไป˜ใ‘ใ‚‹ใ€ๅ‰ๆใงๆˆใ‚Š็ซ‹ใฃใฆใ„ใพใ™ใ€‚้€†ใซ่จ€ใˆใฐใ€ๅˆฅใƒ›ใ‚นใƒˆใ‚„ใ‚ตใƒ–ใƒ‰ใƒกใ‚คใƒณใ‹ใ‚‰ใฎ่จญๅฎšใ€ใ‚ใ‚‹ใ„ใฏ่จญๅฎšใƒŸใ‚นใŒใ‚ใ‚‹ใจใ€ๅŒใ˜ๅๅ‰ใฎใพใพๅฑžๆ€งใ ใ‘ใŒ็ทฉใ„ cookie ใ‚’ไฝœใ‚Œใฆใ—ใพใ†ไฝ™ๅœฐใŒๆฎ‹ใ‚Šใพใ™ใ€‚ใ“ใ“ใงใฏๆกไปถไป˜ใใงๆˆ็ซ‹ใ—ใ†ใ‚‹ไปฃ่กจ็š„ใช3ใคใฎ็ฉดใ‚’ใ€ๆ”ปๆ’ƒ่€…่ฆ–็‚นใง่ฆ‹ใฆใ„ใใพใ™ใ€‚

1. ใ‚ตใƒ–ใƒ‰ใƒกใ‚คใƒณใ‹ใ‚‰ใฎไธŠๆ›ธใ๏ผๆณจๅ…ฅ

Domain ๅฑžๆ€งใฏ็ฏ„ๅ›ฒใ‚’ๅบƒใ’ใ‚‹ๆ–นๅ‘ใซๅƒใใพใ™ใ€‚ใŸใจใˆใฐๆ”ปๆ’ƒ่€…ใŒ evil.example.com ใฎใ‚ˆใ†ใชๅŒไธ€ใƒ‰ใƒกใ‚คใƒณ้…ไธ‹ใฎใ‚ตใƒ–ใƒ‰ใƒกใ‚คใƒณใ‚’ๆŽŒๆกใงใใŸๅ ดๅˆใ€ใใ“ใ‹ใ‚‰ Set-Cookie: session=...; Domain=example.com ใ‚’่ฟ”ใ™ใจใ€ใใฎ cookie ใฏๆœฌไฝ“ใฎ example.com ใซใ‚‚ๅฑŠใใพใ™ใ€‚ๆœฌไฝ“ใ‚ขใƒ—ใƒชใŒๅ‚็…งใ—ใฆใ„ใ‚‹ใ‚ปใƒƒใ‚ทใƒงใƒณ cookie ใจๅŒใ˜ๅๅ‰ใง่จญๅฎšใงใใ‚Œใฐใ€ๅ€คใฎไธŠๆ›ธใใ‚„ๆณจๅ…ฅใŒๆˆ็ซ‹ใ—ใ†ใ‚‹ใ€ใจใ„ใ†ๆง‹ๅ›ณใงใ™๏ผˆใ‚ตใƒ–ใƒ‰ใƒกใ‚คใƒณใ‚’ๅ–ใ‚Œใ‚‹ใ€ใจใ„ใ†ๅ‰ๆใŒๅฟ…่ฆใชๆกไปถไป˜ใใฎๆ”ปๆ’ƒใงใ™๏ผ‰ใ€‚

2. cookie ๅ›บๅฎšๅŒ–๏ผˆsession fixation๏ผ‰

cookie ๅ›บๅฎšๅŒ–ใฏใ€ๆ”ปๆ’ƒ่€…ใŒใ‚ใ‚‰ใ‹ใ˜ใ‚็”จๆ„ใ—ใŸใ‚ปใƒƒใ‚ทใƒงใƒณIDใ‚’่ขซๅฎณ่€…ใฎใƒ–ใƒฉใ‚ฆใ‚ถใซๅ›บๅฎšใ•ใ›ใ€่ขซๅฎณ่€…ใŒใใฎIDใฎใพใพใƒญใ‚ฐใ‚คใƒณใ—ใฆใ—ใพใ†ใจใ€ๆ”ปๆ’ƒ่€…ใ‚‚ๅŒใ˜IDใง่ช่จผๆธˆใฟใ‚ปใƒƒใ‚ทใƒงใƒณใซ็›ธไน—ใ‚Šใงใใ‚‹ใ€ใจใ„ใ†ๆ”ปๆ’ƒใงใ™ใ€‚ไธŠใฎใ€ŒไธŠๆ›ธใ๏ผๆณจๅ…ฅใ€ใŒๆˆ็ซ‹ใ™ใ‚‹็ตŒ่ทฏใŒใ‚ใ‚‹ใจใ€ๆ”ปๆ’ƒ่€…ใŒๅ€คใ‚’ๅ›บๅฎšใ™ใ‚‹ๆ‰‹ๆฎตใซใชใ‚Šใˆใพใ™ใ€‚ใ‚ตใƒผใƒๅดใงใƒญใ‚ฐใ‚คใƒณๆ™‚ใซใ‚ปใƒƒใ‚ทใƒงใƒณIDใ‚’ๅ†็”Ÿๆˆใ—ใฆใ„ใชใ„ใ€ใจใ„ใฃใŸๆกไปถใจ็ต„ใฟๅˆใ‚ใ•ใฃใŸใจใใซๅ•้กŒใซใชใ‚Šใพใ™ใ€‚

3. ๅนณๆ–‡ HTTP ็ตŒ็”ฑใงใฎ่จญๅฎš

Secure ๅฑžๆ€งใ‚’ไป˜ใ‘ๅฟ˜ใ‚ŒใŸ cookie ใฏใ€ๅนณๆ–‡ HTTP ใฎใƒชใ‚ฏใ‚จใ‚นใƒˆใงใ‚‚้€ไฟกใ•ใ‚Œใพใ™ใ€‚ใ™ใ‚‹ใจไธญ้–“่€…๏ผˆๅŒใ˜ใƒใƒƒใƒˆใƒฏใƒผใ‚ฏใซใ„ใ‚‹ๆ”ปๆ’ƒ่€…ใชใฉ๏ผ‰ใŒๅนณๆ–‡ HTTP ใƒฌใ‚นใƒใƒณใ‚นใซ Set-Cookie ใ‚’ๅทฎใ—่พผใฟใ€cookie ใ‚’ไธŠๆ›ธใใงใใ‚‹ไฝ™ๅœฐใŒ็”Ÿใพใ‚Œใพใ™ใ€‚Secure ใ‚’ไป˜ใ‘ใฆใ„ใฆใ‚‚ใ€ไป˜ใ‘ๅฟ˜ใ‚Œใ‚„ๅˆฅ็ตŒ่ทฏใ‹ใ‚‰ใฎ่จญๅฎšใŒไธ€็ฎ‡ๆ‰€ใงใ‚‚ใ‚ใ‚Œใฐ็ฉดใซใชใ‚Šใˆใพใ™ใ€‚

ใ“ใ‚Œใ‚‰3ใคใซๅ…ฑ้€šใ™ใ‚‹ใฎใฏใ€ใ€Œๅๅ‰ใฏๅŒใ˜ใพใพใ€ๅฑžๆ€งใ ใ‘ใŒ็ทฉใ„ cookie ใ‚’ไฝœใ‚Œใฆใ—ใพใ†ใ€ใ“ใจใŒๆ นใซใ‚ใ‚‹็‚นใงใ™ใ€‚ใ‚ขใƒ—ใƒชใŒๅ‚็…งใ™ใ‚‹ๅๅ‰ใฏๅ›บๅฎšใชใฎใซใ€ใใฎๅๅ‰ใงๅฑžๆ€งใฎ็ทฉใ„ cookie ใ‚’ๅˆฅใƒ›ใ‚นใƒˆใ‚„ใ‚ตใƒ–ใƒ‰ใƒกใ‚คใƒณใ€ๅˆฅ็ตŒ่ทฏใ‹ใ‚‰ๅทฎใ—่พผใ‚ใฆใ—ใพใ†ใ€‚ใชใ‚‰ใฐใ€ๅๅ‰ใฎๅดใซใ€Œๆญฃใ—ใ„ๅฑžๆ€งใง่จญๅฎšใ•ใ‚ŒใŸใ“ใจใ€ใ‚’็ธ›ใ‚Šไป˜ใ‘ใ‚‰ใ‚Œใชใ„ใ‹โ€”โ€”ใจใ„ใ†ใฎใŒใ€ๆฌกใซ่ฆ‹ใ‚‹ใƒ—ใƒฌใƒ•ใ‚ฃใƒƒใ‚ฏใ‚นใฎ็™บๆƒณใงใ™ใ€‚

่งฃๆฑบ็ญ–๏ผšcookieๅใƒ—ใƒฌใƒ•ใ‚ฃใƒƒใ‚ฏใ‚น

ๅฑžๆ€งใใฎใ‚‚ใฎใฏใ€ไธŠใง่ฆ‹ใŸใ‚ˆใ†ใซๅˆฅใƒ›ใ‚นใƒˆใ‚„ใ‚ตใƒ–ใƒ‰ใƒกใ‚คใƒณใ‹ใ‚‰ใฎ่จญๅฎšใ€ใ‚ใ‚‹ใ„ใฏ่จญๅฎšใƒŸใ‚นใงๅดฉใ‚Œใ‚‹ไฝ™ๅœฐใŒใ‚ใ‚Šใพใ™ใ€‚ใใ“ใง็™บๆƒณใ‚’ๅค‰ใˆใฆใ€ๅๅ‰ใซๅ—็†ๆกไปถใ‚’ๅŸ‹ใ‚่พผใฟใ€ใƒ–ใƒฉใ‚ฆใ‚ถใŒ cookie ใ‚’ๅ—ใ‘ๅ–ใ‚‹็žฌ้–“ใซๆคœๆŸปใ•ใ›ใ‚‹ใฎใŒใƒ—ใƒฌใƒ•ใ‚ฃใƒƒใ‚ฏใ‚นใฎ่€ƒใˆๆ–นใงใ™ใ€‚

ๅ‹•ไฝœใฏใ‚ทใƒณใƒ—ใƒซใงใ™ใ€‚cookie ใฎๅๅ‰ใŒไบˆ็ด„ใ•ใ‚ŒใŸใƒ—ใƒฌใƒ•ใ‚ฃใƒƒใ‚ฏใ‚น๏ผˆ__Secure- / __Host-๏ผ‰ใงๅง‹ใพใฃใฆใ„ใ‚‹ใฎใซใ€ใใฎใƒ—ใƒฌใƒ•ใ‚ฃใƒƒใ‚ฏใ‚นใŒ่ฆๆฑ‚ใ™ใ‚‹ๆกไปถใ‚’ๆบ€ใŸใ—ใฆใ„ใชใ„ๅ ดๅˆใ€ใƒ–ใƒฉใ‚ฆใ‚ถใฏใใฎ Set-Cookie ใ‚’ไฟๅญ˜ใ›ใšใซ็„ก่ฆ–ใ—ใพใ™ใ€‚ๆกไปถใ‚’ๆบ€ใŸใ—ใŸ cookie ใ ใ‘ใŒไฟๅญ˜ใ•ใ‚Œใพใ™ใ€‚

ใชใœใ€Œๅๅ‰ใ€ใซๅŸ‹ใ‚่พผใ‚€ใฎใŒๅŠนใใฎใงใ—ใ‚‡ใ†ใ‹ใ€‚ๆ”ปๆ’ƒ่€…ใŒๆกไปถใ‚’ๅ›ž้ฟใ—ใ‚ˆใ†ใจใ—ใฆ __Host- ใ‚’ๅค–ใ—ใŸๅˆฅๅ๏ผˆใŸใจใˆใฐใŸใ ใฎ session๏ผ‰ใง cookie ใ‚’่จญๅฎšใ—ใŸใจใ—ใฆใ‚‚ใ€ใใ‚Œใฏๅๅ‰ใฎ็•ฐใชใ‚‹ๅˆฅใฎ cookie ใซใชใ‚Šใพใ™ใ€‚ใ‚ขใƒ—ใƒชใŒๅ‚็…งใ—ใฆใ„ใ‚‹ใฎใฏ __Host-session ใจใ„ใ†ๅๅ‰ใชใฎใงใ€ๅˆฅๅใฎ cookie ใฏใใ“ใซใฏๅฑŠใใพใ›ใ‚“ใ€‚ใ€Œๅๅ‰ใ‚’ๆ”นใ–ใ‚“ใ™ใ‚‹ใจใ€ใ‚‚ใฏใ‚„ๅŒใ˜ cookie ใงใฏใชใใชใ‚‹ใ€โ€”โ€”ใ“ใฎๆ€ง่ณชใŒใ€ๅๅ‰ใซใ‚ˆใ‚‹ๅผทๅˆถใ‚’ๆˆใ‚Š็ซ‹ใŸใ›ใฆใ„ใพใ™ใ€‚

้‡่ฆใชใฎใฏใ€ใƒ—ใƒฌใƒ•ใ‚ฃใƒƒใ‚ฏใ‚นใฏใ€Œๅฑžๆ€งใฎไปฃใ‚ใ‚Šใ€ใงใฏใชใ„ใจใ„ใ†ใ“ใจใงใ™ใ€‚ใƒ—ใƒฌใƒ•ใ‚ฃใƒƒใ‚ฏใ‚นใฏ Secure ใ‚„ Domain ใชใ—ใจใ„ใฃใŸๅฑžๆ€งใŒๆญฃใ—ใไป˜ใ„ใฆใ„ใ‚‹ใ“ใจใ‚’ใ€ใƒ–ใƒฉใ‚ฆใ‚ถใซไฟ่จผใ•ใ›ใ‚‹ไป•ๆŽ›ใ‘ใงใ™ใ€‚ๅฑžๆ€งใ‚’ไป˜ใ‘ใ‚‹ไฝœๆฅญใŒใชใใชใ‚‹ใ‚ใ‘ใงใฏใชใใ€ใ€Œๆญฃใ—ใไป˜ใ„ใฆใ„ใชใ‘ใ‚Œใฐใƒ–ใƒฉใ‚ฆใ‚ถใŒๅ—ใ‘ๅ–ใ‚‰ใชใ„ใ€ใจใ„ใ†ๅผทๅˆถใŒๅŠ ใ‚ใ‚‹ใฎใงใ™ใ€‚

ใƒ—ใƒฌใƒ•ใ‚ฃใƒƒใ‚ฏใ‚นใฎ็จฎ้กž

ใƒ–ใƒฉใ‚ฆใ‚ถใŒๅบƒใๅผทๅˆถใ™ใ‚‹ๆจ™ๆบ–ใฎใƒ—ใƒฌใƒ•ใ‚ฃใƒƒใ‚ฏใ‚นใฏ __Secure- ใจ __Host- ใฎ2็จฎใงใ™ใ€‚ใพใšใฏ2็จฎใฎใ†ใกๅˆถ็ด„ใŒใ‚†ใ‚‹ใ„ __Secure- ใ‹ใ‚‰่ฆ‹ใฆใ„ใใพใ™ใ€‚

__Secure-

ๅๅ‰ใŒ __Secure- ใงๅง‹ใพใ‚‹ cookie ใฏใ€ๆฌกใ‚’ๆบ€ใŸใ™ใจใใ ใ‘ใƒ–ใƒฉใ‚ฆใ‚ถใŒๅ—็†ใ—ใพใ™ใ€‚

  • Secure ๅฑžๆ€งใŒไป˜ใ„ใฆใ„ใ‚‹
  • ๅฎ‰ๅ…จใชๆŽฅ็ถš๏ผˆhttps ใชใฉ๏ผ‰ใง่จญๅฎšใ•ใ‚Œใฆใ„ใ‚‹

ๆกไปถใ‚’ๆบ€ใŸใ•ใชใ„ Set-Cookie ใฏ็„ก่ฆ–ใ•ใ‚Œใพใ™ใ€‚ๆœ€ไฝŽ้™ใ€Œๅธธใซ Secure ใงใ€ๅฎ‰ๅ…จใช็ตŒ่ทฏใ‹ใ‚‰่จญๅฎšใ•ใ‚ŒใŸ cookieใ€ใงใ‚ใ‚‹ใ“ใจใ‚’ๅๅ‰ใงไฟ่จผใ™ใ‚‹ใ€ใ‚†ใ‚‹ใ‚ใฎใƒ—ใƒฌใƒ•ใ‚ฃใƒƒใ‚ฏใ‚นใงใ™ใ€‚

__Host-

ๅๅ‰ใŒ __Host- ใงๅง‹ใพใ‚‹ cookie ใฏใ€ๆฌกใฎใ™ในใฆใ‚’ๆบ€ใŸใ™ใจใใ ใ‘ๅ—็†ใ•ใ‚Œใพใ™ใ€‚

  • Secure ๅฑžๆ€งใŒไป˜ใ„ใฆใ„ใ‚‹
  • ๅฎ‰ๅ…จใชๆŽฅ็ถš๏ผˆhttps ใชใฉ๏ผ‰ใง่จญๅฎšใ•ใ‚Œใฆใ„ใ‚‹
  • Domain ๅฑžๆ€งใŒ็„กใ„๏ผˆ= host-only / ใƒ›ใ‚นใƒˆ้™ๅฎš๏ผ‰
  • Path=/๏ผˆใƒ‘ใ‚นใŒใกใ‚‡ใ†ใฉ /๏ผ‰

ใƒใ‚คใƒณใƒˆใฏ Domain ใ‚’ๆŒใฆใชใ„ใ“ใจใ€ใคใพใ‚Š cookie ใŒ host-only๏ผˆ่จญๅฎšใ—ใŸใƒ›ใ‚นใƒˆ้™ๅฎš๏ผ‰ใซใชใ‚‹ใ“ใจใงใ™ใ€‚host-only ใ‚†ใˆใซใ€ใ“ใฎ cookie ใฏ่จญๅฎšใ—ใŸใƒ›ใ‚นใƒˆใใฎใ‚‚ใฎใซใ—ใ‹้€ใ‚‰ใ‚Œใšใ€ไป–ใฎใ‚ตใƒ–ใƒ‰ใƒกใ‚คใƒณใธใฏ้€ใ‚‰ใ‚Œใพใ›ใ‚“ใ€‚ใใ—ใฆ host-only ใ‚†ใˆใซใ€ๅˆฅใฎใ‚ตใƒ–ใƒ‰ใƒกใ‚คใƒณใ‹ใ‚‰ๅŒๅใฎ __Host- cookie ใ‚’่จญๅฎšใ—ใฆใ‚‚ใ€ใใ‚Œใฏ่จญๅฎšๅ…ƒใƒ›ใ‚นใƒˆ้™ๅฎšใฎๅˆฅ cookie ใซใ—ใ‹ใชใ‚‰ใšใ€ๆœฌๆฅใฎใƒ›ใ‚นใƒˆใฎ cookie ใ‚’ไธŠๆ›ธใใƒปๆณจๅ…ฅใงใใพใ›ใ‚“ใ€‚ๅ…ˆใปใฉใฎใ€Œใ‚ตใƒ–ใƒ‰ใƒกใ‚คใƒณใ‹ใ‚‰ใฎไธŠๆ›ธใ๏ผๆณจๅ…ฅใ€ใฎ็ฉดใ‚’ใ€ๅๅ‰ใฎๅˆถ็ด„ใ ใ‘ใง็›ดๆŽฅๅกžใ’ใ‚‹ใ‚ใ‘ใงใ™ใ€‚ใ€ŒไธŠๆ›ธใ็ฆๆญขใƒ•ใƒฉใ‚ฐใ€ใŒใ‚ใ‚‹ใฎใงใฏใชใใ€ใ€ŒDomain ใ‚’ๆŒใฆใชใ„๏ผˆhost-only๏ผ‰ใ€ใจใ„ใ†ๅˆถ็ด„ใ‹ใ‚‰่ซ–็†็š„ใซใ“ใฎๆ€ง่ณชใŒๅฐŽใ‹ใ‚Œใฆใ„ใ‚‹ใ€ใจใ„ใ†ๅ› ๆžœ้–ขไฟ‚ใซๆณจๆ„ใ—ใฆใใ ใ•ใ„ใ€‚

ๅคงๆ–‡ๅญ—ๅฐๆ–‡ๅญ—ใฎๆณจๆ„

ไป•ๆง˜๏ผˆRFC 6265bis๏ผ‰ไธŠใฎๆญฃ่ฆ่กจ่จ˜ใฏ __Secure- / __Host- ใงใ™ใ€‚ใŸใ ใ—ใƒ–ใƒฉใ‚ฆใ‚ถใฏใƒ—ใƒฌใƒ•ใ‚ฃใƒƒใ‚ฏใ‚นใ‚’ๅคงๆ–‡ๅญ—ๅฐๆ–‡ๅญ—ใ‚’ๅŒบๅˆฅใ›ใšใซ็…งๅˆใ—ใฆๆกไปถใ‚’ๅผทๅˆถใ—ใพใ™ใ€‚ใคใพใ‚Š __host- ใ‚„ __HOST- ใจ็ถดใฃใฆใ‚‚ใ€ใƒ–ใƒฉใ‚ฆใ‚ถใฏใƒ—ใƒฌใƒ•ใ‚ฃใƒƒใ‚ฏใ‚น cookie ใจใฟใชใ—ใฆๅŒใ˜ๅ—็†ๆกไปถใ‚’่ชฒใ—ใพใ™ใ€‚ใ€Œๅฐๆ–‡ๅญ—ใซใ™ใ‚Œใฐๅˆถ็ด„ใ‚’ๅ›ž้ฟใงใใ‚‹ใ€ใจใ„ใ†ใ“ใจใฏใ‚ใ‚Šใพใ›ใ‚“ใ€‚

__Http- / __Host-Http-๏ผˆ่ฃœ่ถณ๏ผ‰

HttpOnly ใ‚’ๅๅ‰ใงไฟ่จผใ—ใ‚ˆใ†ใจใ™ใ‚‹ __Http- / __Host-Http- ใจใ„ใ†ใƒ—ใƒฌใƒ•ใ‚ฃใƒƒใ‚ฏใ‚นใ‚‚็›ฎใซใ™ใ‚‹ใ“ใจใŒใ‚ใ‚Šใพใ™ใŒใ€ใ“ใ‚Œใ‚‰ใฏใƒ–ใƒฉใ‚ฆใ‚ถใŒๅบƒใๅผทๅˆถใ™ใ‚‹ๆจ™ๆบ–2็จฎใงใฏใ‚ใ‚Šใพใ›ใ‚“ใ€‚__Http- / __Host-Http- ใฏ RFC 6265bis ใซใฏๅซใพใ‚ŒใฆใŠใ‚‰ใšใ€ใ‚ˆใ‚Šๆ–ฐใ—ใ„ IETF ใฎ Internet-Draft๏ผˆlayered-cookies๏ผ‰ใŒๆๆกˆใ—ใฆใ„ใ‚‹ใ‚‚ใฎใงใ™ใ€‚RFC ๅŒ–ใ•ใ‚ŒใฆใŠใ‚‰ใšใ€็พ็Šถใฎไธป่ฆใƒ–ใƒฉใ‚ฆใ‚ถใงใฏๅบƒใใฏๅŠนใใพใ›ใ‚“ใ€‚ๅฎŸ็”จไธŠใ€้ ผใ‚Šใซใงใใ‚‹ๅผทๅˆถใ•ใ‚Œใ‚‹ใƒ—ใƒฌใƒ•ใ‚ฃใƒƒใ‚ฏใ‚นใฏ __Secure- ใจ __Host- ใฎ2็จฎใ ใจ่€ƒใˆใฆใใ ใ•ใ„ใ€‚

ๆจ™ๆบ–2็จฎใฎๅฏพๆฏ”่กจ

ๅ—็†ๆกไปถ __Secure- __Host-
Secure ๅฟ…้ ˆ ๅฟ…่ฆ ๅฟ…่ฆ
ๅฎ‰ๅ…จใชๆŽฅ็ถš๏ผˆhttps ใชใฉ๏ผ‰ใง่จญๅฎš ๅฟ…่ฆ ๅฟ…่ฆ
Domain ๅฑžๆ€ง ๅˆถ้™ใชใ— ไธๅฏ๏ผˆhost-only๏ผ‰
Path=/ ๅฟ…้ ˆ ๅˆถ้™ใชใ— ๅฟ…้ ˆ
ใƒ—ใƒฌใƒ•ใ‚ฃใƒƒใ‚ฏใ‚นใซใ‚ˆใ‚‹ใ‚ตใƒ–ใƒ‰ใƒกใ‚คใƒณๅˆ†้›ข๏ผˆไธŠๆ›ธใ/ๆณจๅ…ฅ่€ๆ€ง๏ผ‰ ใชใ— ใ‚ใ‚Š

ๅ…ทไฝ“ไพ‹๏ผšSet-Cookie ใจ Laravel

ใพใš็”Ÿใฎ Set-Cookie

OK / NG ใ‚’ Set-Cookie ใƒ˜ใƒƒใƒ€ใงๅฏพๆฏ”ใ—ใพใ™ใ€‚

Set-Cookie: __Host-session=abc123; Secure; Path=/; HttpOnly; SameSite=Lax

OKใ€‚https ใ‚ชใƒชใ‚ธใƒณใ‹ใ‚‰่จญๅฎšใ•ใ‚Œใ€Secure ไป˜ใใƒปDomain ใชใ—ใƒปPath=/ ใ‚’ใ™ในใฆๆบ€ใŸใ™ใฎใงไฟๅญ˜ใ•ใ‚Œใพใ™ใ€‚

Set-Cookie: __Host-session=abc123; Secure; Path=/; Domain=example.com; HttpOnly

NGใ€‚__Host- ใฏ Domain ใ‚’ไป˜ใ‘ใฆใฏใ„ใ‘ใพใ›ใ‚“ใ€‚Domain ใŒใ‚ใ‚‹ใŸใ‚ใƒ–ใƒฉใ‚ฆใ‚ถใซ็„ก่ฆ–ใ•ใ‚Œใ€ไฟๅญ˜ใ•ใ‚Œใพใ›ใ‚“ใ€‚

Set-Cookie: __Secure-token=xyz789; Path=/; HttpOnly

NGใ€‚__Secure- ใฏ Secure ๅฑžๆ€งใŒๅฟ…้ ˆใงใ™ใ€‚Secure ใŒ็„กใ„ใŸใ‚็„ก่ฆ–ใ•ใ‚Œใ€ไฟๅญ˜ใ•ใ‚Œใพใ›ใ‚“ใ€‚

HttpOnly ใ‚„ SameSite ใฏใƒ—ใƒฌใƒ•ใ‚ฃใƒƒใ‚ฏใ‚นใฎๅ—็†ๆกไปถใซใฏๅซใพใ‚Œใพใ›ใ‚“ใŒใ€ๅฎŸ้‹็”จใงใฏๅˆฅ้€”ไป˜ใ‘ใฆใŠใในใๅฑžๆ€งใงใ™๏ผˆๅพŒ่ฟฐ๏ผ‰ใ€‚

็ถšใ‘ใฆ Laravel/PHP

Laravel ใงใƒฌใ‚นใƒใƒณใ‚นใซๅ€‹ๅˆฅใฎ cookie ใ‚’ไป˜ใ‘ใ‚‹ๅ ดๅˆใ€ใ‚ฐใƒญใƒผใƒใƒซใƒ˜ใƒซใƒ‘ cookie() ็ญ‰ใงๅๅ‰ใซใƒ—ใƒฌใƒ•ใ‚ฃใƒƒใ‚ฏใ‚นใ‚’ไป˜ใ‘ใ€ๆกไปถใซๅˆใ†ๅผ•ๆ•ฐใ‚’ๆธกใ—ใพใ™ใ€‚Laravel ใฎ cookie() / response()->cookie() ใงใฏใ€ๅๅ‰ใƒปๅ€คใƒปๆœ‰ๅŠนๆœŸ้™๏ผˆๅˆ†๏ผ‰ใซ็ถšใ„ใฆ path / domain / secure / httpOnly ใ‚’ๆŒ‡ๅฎšใงใใพใ™ใ€‚

// __Host- ใฎๆกไปถใซๅˆใ‚ใ›ใ‚‹: path='/', domain=null, secure=true
$cookie = cookie(
    '__Host-token',  // ๅๅ‰ใซใƒ—ใƒฌใƒ•ใ‚ฃใƒƒใ‚ฏใ‚น
    $value,
    60,              // ๆœ‰ๅŠนๆœŸ้™๏ผˆๅˆ†๏ผ‰
    '/',             // $path = '/'
    null,            // $domain = null๏ผˆhost-only๏ผ‰
    true,            // $secure = true
    true             // $httpOnly = true
);

return response('OK')->cookie($cookie);

ใ‚ปใƒƒใ‚ทใƒงใƒณ cookie ใ‚’ใƒ—ใƒฌใƒ•ใ‚ฃใƒƒใ‚ฏใ‚นๅŒ–ใ™ใ‚‹ๅ ดๅˆใฏใ€config/session.php๏ผˆใŠใ‚ˆใณๅฏพๅฟœใ™ใ‚‹ env๏ผ‰ใฎๅ€คใ‚’ __Host- ใฎๆกไปถใซๅˆใ‚ใ›ใพใ™ใ€‚

// config/session.php๏ผˆ้–ขไฟ‚ใ™ใ‚‹ใ‚ญใƒผใฎๆŠœ็ฒ‹๏ผ‰
'cookie' => env('SESSION_COOKIE', '__Host-laravel-session'), // ๅๅ‰ใซใƒ—ใƒฌใƒ•ใ‚ฃใƒƒใ‚ฏใ‚น
'path'   => env('SESSION_PATH', '/'),        // Path=/
'domain' => env('SESSION_DOMAIN', null),     // Domain ใชใ—๏ผˆhost-only๏ผ‰
'secure' => env('SESSION_SECURE_COOKIE', true), // Secure ใ‚’ๆ˜Ž็คบ

env ใง่จญๅฎšใ™ใ‚‹ใชใ‚‰ๆฌกใฎใ‚ˆใ†ใซใชใ‚Šใพใ™ใ€‚

SESSION_COOKIE=__Host-laravel-session
SESSION_SECURE_COOKIE=true
SESSION_PATH=/
# SESSION_DOMAIN ใฏ่จญๅฎšใ—ใชใ„๏ผˆnull ใฎใพใพ = host-only๏ผ‰

path๏ผˆๆ—ขๅฎš '/'๏ผ‰ใจ domain๏ผˆๆ—ขๅฎš null๏ผ‰ใฏๆ—ขๅฎšใฎใพใพใง __Host- ใฎๆกไปถใซๅˆ่‡ดใ—ใพใ™ใ€‚ไธ€ๆ–น secure ใฎๆ—ขๅฎšๅ€คใฏ null๏ผˆใƒชใ‚ฏใ‚จใ‚นใƒˆใŒ https ใฎใจใ่‡ชๅ‹•ใง secure๏ผ‰ใชใฎใงใ€ๆกไปถใ‚’็ขบๅฎŸใซๆบ€ใŸใ™ใซใฏ true ใ‚’ๆ˜Ž็คบใ—ใฆใŠใใฎใŒๅฎ‰ๅ…จใงใ™ใ€‚

ใชใŠ Laravel ใฏๆ—ขๅฎšใง EncryptCookies ใƒŸใƒ‰ใƒซใ‚ฆใ‚งใ‚ขใซใ‚ˆใ‚Š cookie ใ‚’ๆš—ๅทๅŒ–ใƒป็ฝฒๅใ—ใพใ™ใŒใ€ใ“ใ‚Œใฏ cookie ใฎๅ€คใซๅฏพใ™ใ‚‹ๅ‡ฆ็†ใงใ™ใ€‚ๅๅ‰ใฎใƒ—ใƒฌใƒ•ใ‚ฃใƒƒใ‚ฏใ‚นใซๅฏพใ™ใ‚‹ใƒ–ใƒฉใ‚ฆใ‚ถๅดใฎๅ—็†ๅˆคๅฎšใจใฏ็‹ฌ็ซ‹ใ—ใฆใŠใ‚Šใ€ใƒ—ใƒฌใƒ•ใ‚ฃใƒƒใ‚ฏใ‚นๅใฎ cookie ใงใ‚‚ๆš—ๅทๅŒ–ใฏใใฎใพใพๆฉŸ่ƒฝใ—ใพใ™ใ€‚ไธก่€…ใฏๅˆฅใฎ่ปธใฎ่ฉฑใ ใจๆ•ด็†ใ—ใฆใใ ใ•ใ„ใ€‚

ไฝฟใ†ใจใใฎๆณจๆ„็‚น

ใƒ–ใƒฉใ‚ฆใ‚ถๅฏพๅฟœ

__Host- / __Secure- ใฎๅผทๅˆถใฏ Chrome 49ใƒปFirefox 50๏ผˆใ„ใšใ‚Œใ‚‚ 2016 ๅนด๏ผ‰ไปฅ้™ใงๅฎŸ่ฃ…ใ•ใ‚Œใ€็พ่กŒใฎไธป่ฆใƒขใƒ€ใƒณใƒ–ใƒฉใ‚ฆใ‚ถใงๅบƒใใ‚ตใƒใƒผใƒˆใ•ใ‚Œใฆใ„ใพใ™ใ€‚ใŸใ ใ—้žๅฏพๅฟœใฎใƒ–ใƒฉใ‚ฆใ‚ถใงใฏใ€ใƒ—ใƒฌใƒ•ใ‚ฃใƒƒใ‚ฏใ‚นใฏใ€ŒใŸใ ใฎๅๅ‰ใ€ใจใ—ใฆ็ด ้€šใ‚Šใงๅ—็†ใ•ใ‚Œใพใ™ใ€‚ใคใพใ‚ŠๅผทๅˆถใŒๅŠนใ‹ใชใ„็’ฐๅขƒใŒใ‚ใ‚Šใ†ใ‚‹ใฎใงใ€ใƒ—ใƒฌใƒ•ใ‚ฃใƒƒใ‚ฏใ‚นใ‚’ๅ”ฏไธ€ใฎ้˜ฒๅพกใซใ›ใšใ€ไฟ้™บใจใ—ใฆ Secure ใชใฉใฎๅฑžๆ€ง่‡ชไฝ“ใฏๅฟ…ใšๆญฃใ—ใไป˜ใ‘ใฆใŠใในใใงใ™ใ€‚ใƒ—ใƒฌใƒ•ใ‚ฃใƒƒใ‚ฏใ‚นใฏใ€Œๅฏพๅฟœใƒ–ใƒฉใ‚ฆใ‚ถใงใฎ่ฟฝๅŠ ้˜ฒๅพกใ€ใจไฝ็ฝฎใฅใ‘ใฆใใ ใ•ใ„ใ€‚

ใƒญใƒผใ‚ซใƒซ้–‹็™บ

็ด ใฎ http๏ผˆ้ž localhost๏ผ‰ใงใฏ Secure cookie ใ‚’็ฝฎใ‘ใชใ„ใŸใ‚ใ€__Secure-/__Host- cookie ใ‚‚่จญๅฎšใงใใพใ›ใ‚“๏ผˆใƒ–ใƒฉใ‚ฆใ‚ถใŒๆ‹’ๅฆใ—ใพใ™๏ผ‰ใ€‚ใ“ใ“ใฏๆŒ™ๅ‹•ใŒๅฎ‰ๅฎšใ—ใฆใ„ใพใ™ใ€‚ไธ€ๆ–น localhost ใฏๅคšใใฎใƒ–ใƒฉใ‚ฆใ‚ถใง secure context๏ผˆๅฎ‰ๅ…จใชใ‚ณใƒณใƒ†ใ‚ญใ‚นใƒˆ๏ผ‰ใจใ—ใฆๆ‰ฑใ‚ใ‚Œใ€http ใงใ‚‚ Secure ใ‚„ใƒ—ใƒฌใƒ•ใ‚ฃใƒƒใ‚ฏใ‚น cookie ใ‚’่จญๅฎšใงใใ‚‹ใ“ใจใŒใ‚ใ‚Šใพใ™ใ€‚ใŸใ ใ—ใ“ใฎๆŒ™ๅ‹•ใฏใƒ–ใƒฉใ‚ฆใ‚ถใ‚„ใƒใƒผใ‚ธใƒงใƒณใซใ‚ˆใฃใฆๅทฎใŒใ‚ใ‚Šใ€Safari ใฏ localhost ใฎ http ใงใ‚‚ Secure cookie ใ‚’่จฑๅฏใ—ใพใ›ใ‚“ใ€‚Chrome ใ‚‚ๆŒ™ๅ‹•ใŒๅค‰้ทใ—ใฆใŠใ‚Šใ€ๆƒ…ๅ ฑๆบใซใ‚ˆใฃใฆ่จ˜่ฟฐใŒ้ฃŸใ„้•ใ„ใพใ™ใ€‚ใƒญใƒผใ‚ซใƒซใงใ‚‚ mkcert ใชใฉใง https ใ‚’็”จๆ„ใ—ใฆๅ‹•ใ‹ใ™ใฎใŒ็„ก้›ฃใงใ™ใ€‚

HttpOnly ใจใฏ็‹ฌ็ซ‹

ๆจ™ๆบ–2็จฎ๏ผˆ__Secure- / __Host-๏ผ‰ใฏ HttpOnly ใ‚’่ฆๆฑ‚ใ‚‚ๅˆถๅพกใ‚‚ใ—ใพใ›ใ‚“ใ€‚ใƒ—ใƒฌใƒ•ใ‚ฃใƒƒใ‚ฏใ‚นใ‚’ไป˜ใ‘ใฆใ‚‚ใ€JavaScript ใ‹ใ‚‰ cookie ใŒ่ชญใ‚ใ‚‹ใ‹ใฉใ†ใ‹ใฏๅค‰ใ‚ใ‚Šใพใ›ใ‚“ใ€‚JS ใ‹ใ‚‰ใฎ่ชญใฟๅ–ใ‚Šใ‚’้˜ฒใŽใŸใ„๏ผˆXSS ๅฏพ็ญ–๏ผ‰ใชใ‚‰ใ€ๅˆฅ้€” HttpOnly ใ‚’ไป˜ใ‘ใ‚‹ๅฟ…่ฆใŒใ‚ใ‚Šใพใ™ใ€‚ใƒ—ใƒฌใƒ•ใ‚ฃใƒƒใ‚ฏใ‚นใจ HttpOnly ใฏๅˆฅใฎ่ปธใชใฎใงๆททๅŒใ—ใชใ„ใงใใ ใ•ใ„ใ€‚

ๆ—ขๅญ˜ cookie ใฎใƒชใƒใƒผใƒ 

ใ™ใงใซ้‹็”จไธญใฎ cookie ใฎๅๅ‰ใ‚’ __Host-... ใซๅค‰ๆ›ดใ™ใ‚‹ใจใ€ใƒ–ใƒฉใ‚ฆใ‚ถใ‹ใ‚‰ใฏๅˆฅใฎ cookieใจใ—ใฆๆ‰ฑใ‚ใ‚Œใพใ™ใ€‚ๆ—ขๅญ˜ใฎใ‚ปใƒƒใ‚ทใƒงใƒณใฏๆ–ฐใ—ใ„ๅๅ‰ใซใฏๅผ•ใ็ถ™ใŒใ‚Œใชใ„ใŸใ‚ใ€ๅˆฉ็”จ่€…ใ‹ใ‚‰่ฆ‹ใ‚‹ใจใƒญใ‚ฐใ‚ขใ‚ฆใƒˆใ—ใŸใฎใจๅŒใ˜็Šถๆ…‹ใซใชใ‚Šใพใ™ใ€‚็งป่กŒใฎใ‚ฟใ‚คใƒŸใƒณใ‚ฐใซใฏๆณจๆ„ใ—ใฆใใ ใ•ใ„ใ€‚

ใพใจใ‚

ๆŒใกๅธฐใ‚Šใฏๆฌกใฎ3็‚นใงใ™ใ€‚

  1. cookie ใฎๅฑžๆ€งใฏใ€Œใ‚ตใƒผใƒใŒๆญฃใ—ใไป˜ใ‘ใ‚‹ใ€ๅ‰ๆใงๆˆใ‚Š็ซ‹ใฃใฆใŠใ‚Šใ€ๅˆฅใƒ›ใ‚นใƒˆใ‚„ใ‚ตใƒ–ใƒ‰ใƒกใ‚คใƒณใ‹ใ‚‰ใฎ่จญๅฎšใ€ใ‚ใ‚‹ใ„ใฏ่จญๅฎšใƒŸใ‚นใŒใ‚ใ‚‹ใจใ€ๅŒใ˜ๅๅ‰ใฎใพใพๅฑžๆ€งใ ใ‘ใŒ็ทฉใ„ cookie ใ‚’ไฝœใ‚‰ใ‚Œใฆๅดฉใ‚Œใ‚‹ไฝ™ๅœฐใŒใ‚ใ‚‹ใ€‚
  2. ใƒ—ใƒฌใƒ•ใ‚ฃใƒƒใ‚ฏใ‚นใฏๅๅ‰ใซๅ—็†ๆกไปถใ‚’ๅŸ‹ใ‚่พผใฟใ€ๆกไปถใ‚’ๆบ€ใŸใ•ใชใ„ cookie ใ‚’ใƒ–ใƒฉใ‚ฆใ‚ถใซๆ‹’ๅฆใ•ใ›ใ‚‹ไป•ๆŽ›ใ‘ใ€‚ๅๅ‰ใ‚’ๆ”นใ–ใ‚“ใ™ใ‚Œใฐๅˆฅ cookie ใซใชใ‚‹ใŸใ‚ใ€ๅๅ‰ใซใ‚ˆใ‚‹ๅผทๅˆถใŒๅŠนใใ€‚
  3. ๅฎŸ็”จไธŠใฏ __Secure-๏ผˆ่ฆ Secure + ๅฎ‰ๅ…จใชๆŽฅ็ถš๏ผ‰ใจ __Host-๏ผˆใ•ใ‚‰ใซ Domain ใชใ— + Path=/๏ผ‰ใฎ2็จฎใ€‚ใ‚ตใƒ–ใƒ‰ใƒกใ‚คใƒณๅˆ†้›ขใพใงๅŠนใ __Host- ใŒๆœ€ใ‚‚ๅŽณใ—ใใ€่ฟทใฃใŸใ‚‰ __Host- ใ‚’้ธใถใจใ‚ˆใ„ใ€‚ใŸใ ใ—ใ€ใ‚ตใƒ–ใƒ‰ใƒกใ‚คใƒณ้–“ใงๅ…ฑๆœ‰ใ—ใŸใ„ cookie ใซใฏ __Host- ใฏไฝฟใˆใชใ„ใ€‚

้–ข้€ฃ่จ˜ไบ‹: ๏ผˆ้–ข้€ฃ๏ผ‰Auth0/Keycloak ใฏโ€ฆcookie ใซใ‚ˆใ‚‹็Šถๆ…‹็ฎก็†๏ผˆ่ฟ‘ๆ—ฅๅ…ฌ้–‹๏ผ‰

3
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
quick-wpd
ๆ ชๅผไผš็คพใ‚ฏใ‚คใƒƒใ‚ฏใฏไบบๆใƒปๆƒ…ๅ ฑใƒ“ใ‚ธใƒใ‚นใ‚’่ปธใซใ€ŒใฏใŸใ‚‰ใใ€ใ‚’ๅ–ใ‚Šๅทปใ็คพไผš่ชฒ้กŒ่งฃๆฑบใซๅ–ใ‚Š็ต„ใ‚€ใ‚ฐใƒญใƒผใƒใƒซHRใ‚ซใƒณใƒ‘ใƒ‹ใƒผใงใ™ใ€‚ Webไบ‹ๆฅญไผ็”ป้–‹็™บๆœฌ้ƒจใฏใ€ใƒŸใƒƒใ‚ทใƒงใƒณใจใ—ใฆใ€Œ็œŸใฎใƒฆใƒผใ‚ถใƒผใƒ•ใ‚กใƒผใ‚นใƒˆใงใƒžใƒผใ‚ฑใƒƒใƒˆใ‚’ๅ‰ต้€ ใ™ใ‚‹ใ€ใ‚’ๆŽฒใ’ใ€ๅฝ“็คพใŒๅฑ•้–‹ใ™ใ‚‹ๆฅญ็•Œ็‰นๅŒ–ๅž‹ไบบๆ็ดนไป‹ใ‚ตใƒผใƒ“ใ‚นใซ้–ขใ™ใ‚‹ใƒ—ใƒญใƒ€ใ‚ฏใƒˆ้–‹็™บใ‚„ๆ–ฐ่ฆไบ‹ๆฅญใ‚„ใ‚ตใƒผใƒ“ใ‚นใฎไผ็”ปใƒป้–‹็™บใ€ใ‚ฐใƒซใƒผใƒ—ไผš็คพใ‚’ๅซใ‚€ๅ…จ็คพใฎDXๆŽจ้€ฒใ‚’ๆ‹…ใฃใฆใŠใ‚Šใพใ™ใ€‚

Today's trending articles

masa20057

ๆœช็ตŒ้จ“ใ‹ใ‚‰ใ‚จใƒณใ‚ธใƒ‹ใ‚ขใ‚’็›ฎๆŒ‡ใ™ใชใ‚‰็ŸฅใฃใฆใŠใใŸใ„ใ€่ท็จฎใฎๅบƒใŒใ‚Šๆ–นใจๆˆ้•ทใ‚’็ถšใ‘ใ‚‹ใ‚ณใƒ„

ใ“ใฎ่จ˜ไบ‹่ชฐๅพ—๏ผŸ ็งใ—ใ‹ๅพ—ใ—ใชใ„ใƒ‹ใƒƒใƒใชๆŠ€่ก“ใง่จ˜ไบ‹ๆŠ•็จฟ๏ผ
Shiro_Shihi

ใ€Œๆญฃ่ฆ่กจ็พใŒ0.002ใƒŸใƒช็ง’้…ใ‹ใฃใŸใ€ใจใ„ใ†็†็”ฑใ ใ‘ใงใ€ๅ…จ่ง’/ๅŠ่ง’ๅˆคๅฎšใ‚’ใ™ในใฆใ€Žใƒ“ใƒƒใƒˆๆผ”็ฎ—ใ€ใงๅฎŸ่ฃ…ใ—ใŸ่ฉฑ

Comments

No comments

Let's comment your feelings that are more than good

Being held Article posting campaign

3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Login to continue?

Login or Sign up with social account

Login or Sign up with your email address