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?

More than 1 year has passed since last update.

Storage Access API ใจ CHIPS ใ‚’ไฝฟใฃใฆใ‚ตใƒผใƒ‰ใƒ‘ใƒผใƒ†ใ‚ฃใƒญใ‚ฐใ‚คใƒณใ™ใ‚‹ IN 2024

Last updated at Posted at 2024-03-10

ใ“ใ‚Œใฏไฝ•๏ผŸ

ใ‚ตใƒผใƒ‰ใƒ‘ใƒผใƒ†ใ‚ฃCookieใŒใƒ–ใƒญใƒƒใ‚ฏใ•ใ‚Œใฆใ‚‚ใ€Storage Access API๏ผˆSAA๏ผ‰ใจCHIPSใ‚’ไฝฟใฃใฆใ‚ตใƒผใƒ‰ใƒ‘ใƒผใƒ†ใ‚ฃใงใƒญใ‚ฐใ‚คใƒณใ™ใ‚‹ๆ–นๆณ•ใฎDemoใงใ™ใ€‚
2024ๅนดๅ†…ใซChromeใŒใ‚ตใƒผใƒ‰ใƒ‘ใƒผใƒ†ใ‚ฃCookieใ‚’ใƒ–ใƒญใƒƒใ‚ฏใ™ใ‚‹ใจ่จ€ใ‚ใ‚Œใฆใพใ™ใ€‚
ใ“ใ“ใงใฏใ‚ตใƒผใƒ‰ใƒ‘ใƒผใƒ†ใ‚ฃCookieใฎใƒญใ‚ฐใ‚คใƒณใฎไปฃๆ›ฟใจใ—ใฆSAAใจCHIPSใ‚’ไฝฟใฃใŸๆกˆใ‚’ๆๆกˆใ—ใพใ™ใ€‚

Storage Access APIใจใฏ

ใƒฆใƒผใ‚ถใซใƒ€ใ‚คใ‚ขใƒญใ‚ฐใ‚’่กจ็คบใ—ใ€ๅŸ‹ใ‚่พผใฟใ‚ณใƒณใƒ†ใƒณใƒ„ใซๅฏพใ—ใฆใ€Œ่จฑๅฏใ€ใ‚’ๆฑ‚ใ‚ใพใ™ใ€‚ใ€Œ่จฑๅฏใ€ใ‚’ๆŠผใ—ใŸใƒฆใƒผใ‚ถใฏไปฅ้™ใฏใ€ใ‚ตใƒผใƒ‰ใƒ‘ใƒผใƒ†ใ‚ฃCookieใฎ้€ไฟกใŒๅฏ่ƒฝใซใชใ‚Šใพใ™ใ€‚

CHIPSใจใฏ

Partitionedๅฑžๆ€งใฎใคใ„ใŸCookieใงใ™ใ€‚
ใ„ใพใพใงใฎCookieใจใฏ็•ฐใชใ‚Šใ€ใƒ–ใƒฉใ‚ฆใ‚ถใŒใ‚ตใƒผใƒ‰ใƒ‘ใƒผใƒ†ใ‚ฃCookieใ‚’ใƒ–ใƒญใƒƒใ‚ฏใฎ็Šถๆ…‹ใงใ‚‚Cookieใฎ้€ไฟกใŒๅฏ่ƒฝใซใชใ‚Šใพใ™ใ€‚

Demoใ‚ณใƒผใƒ‰

ไธ‹่จ˜ใซใŠใใพใ—ใŸใ€‚
https://github.com/reojun25/saa_demo

ใ‚ทใƒผใ‚ฑใƒณใ‚น

ไปŠๅ›ž็”จๆ„ใ—ใŸDemoใฎใ‚ทใƒผใ‚ฑใƒณใ‚นใงใ™ใ€‚
SAA_Demoใ‚ทใƒผใ‚ฑใƒณใ‚น.png

  • Chromeใฎ่จญๅฎšใ‚’้–‹ใใ€ใ€Œใ‚ตใƒผใƒ‰ใƒ‘ใƒผใƒ†ใ‚ฃCookieใ‚’ใƒ–ใƒญใƒƒใ‚ฏใ™ใ‚‹ใ€ใซ่จญๅฎšใ—ใพใ™
  • IDPใซใ‚ขใ‚ฏใ‚ปใ‚นใ—ใƒฆใƒผใ‚ถ็™ป้Œฒใ—ใพใ™ใ€‚๏ผˆ0. ไบ‹ๅ‰ใซ็™ป้Œฒ๏ผ‰
    ใ“ใ“ใงใฏIDPใฏTOPใƒฌใƒ™ใƒซใƒ‰ใƒกใ‚คใƒณใจใ—ใฆใ‚ขใ‚ฏใ‚ปใ‚นใ—ใพใ™ใ€‚PHPSESSIDใฏใƒ•ใ‚กใƒผใ‚นใƒˆใƒ‘ใƒผใƒ†ใ‚ฃใจใ—ใฆSet-Cookieใ•ใ‚Œใพใ™ใ€‚ใƒฆใƒผใ‚ถๅใฏPHPใฎใ‚ปใƒƒใ‚ทใƒงใƒณใจใ—ใฆไฟๅญ˜ใ—ใพใ—ใŸ
  • RPใซใ‚ขใ‚ฏใ‚ปใ‚นใ—ใพใ™ใ€‚
    RPใ‚ตใ‚คใƒˆใฏIDPใ‚ตใ‚คใƒˆใฎใ‚ณใƒณใƒ†ใƒณใƒ„ใ‚’iframeใงๅŸ‹ใ‚่พผใ‚“ใงใพใ™ใ€‚
    IDPใฎใ‚ตใ‚คใƒˆใซใฏ็™ป้Œฒๆธˆใฟใงใ™ใŒใ€PHPSESSIDใฎCookieใฏใ‚ตใƒผใƒ‰ใƒ‘ใƒผใƒ†ใ‚ฃใซใ‚ใŸใ‚‹ใŸใ‚ใƒ–ใƒญใƒƒใ‚ฏใ•ใ‚Œใพใ™ใ€‚ใใฎใŸใ‚ใ‚ฒใ‚นใƒˆ็Šถๆ…‹ใฎ่กจ็คบใจใชใ‚Šใพใ™
  • Storage Access APIใ‚’ไฝฟ็”จใ—ใฆใƒฆใƒผใ‚ถใซใƒ€ใ‚คใ‚ขใƒญใ‚ฐใ‚’่กจ็คบใ—ใพใ™ใ€‚
  • ใƒฆใƒผใ‚ถใŒใ€Œ่จฑๅฏใ€ใ‚’้ธๆŠžใ—ใŸๅพŒใฎใ€XHRใƒชใ‚ฏใ‚จใ‚นใƒˆใงใฏใ‚ตใƒผใƒ‰ใƒ‘ใƒผใƒ†ใ‚ฃใซใ‚ใŸใ‚‹PHPSESSIDใฎCookieใฏ้€ไฟกใŒๅฏ่ƒฝใซใชใ‚Šใพใ™ใ€‚๏ผˆ2-1. XHRใƒชใ‚ฏใ‚จใ‚นใƒˆ๏ผ‰
  • IDPใงใฏๅ—ไฟกใ—ใŸPHPSESSIDใ‚’ๆคœ่จผใ—ใพใ™ใ€‚
    ๆญฃ่ฆใฎใ‚ปใƒƒใ‚ทใƒงใƒณใงใ‚ใ‚Œใฐใ€PHPSESSIDใ‚’Partitionedๅฑžๆ€งใฎใคใ„ใŸCookieใจใ—ใฆSet-Cookieใ—ใพใ™ใ€‚๏ผˆ2-1. ใƒฌใ‚นใƒใƒณใ‚น๏ผ‰
  • ไปฅ้™ใƒ–ใƒฉใ‚ฆใ‚ถใ‚’ๆ›ดๆ–ฐใ—ใฆใ‚‚ใ€RPใ‚ตใ‚คใƒˆใซๅŸ‹ใ‚่พผใพใ‚ŒใŸIDPใ‚ตใ‚คใƒˆใฎใ‚ณใƒณใƒ†ใƒณใƒ„ใธใฏCookieใฎ้€ไฟกใŒๅฏ่ƒฝใซใชใ‚Šใพใ™ใ€‚
    ใ‚ตใƒผใƒ‰ใƒ‘ใƒผใƒ†ใ‚ฃCookieใŒใƒ–ใƒญใƒƒใ‚ฏใ•ใ‚Œใฆใ‚‚ใƒฆใƒผใ‚ถ่ช่จผใŒๅฏ่ƒฝใซใชใ‚Šใพใ™ใ€‚

Demoใ‚ณใƒผใƒ‰ใ‚’ๆ“ไฝœใ—ใฆใฟใ‚‹

Chromeใฎ่จญๅฎšใ‚’ๅค‰ๆ›ดใ™ใ‚‹

่จญๅฎš ใ‚’้–‹ใใ€ใ€Œใƒ—ใƒฉใ‚คใƒใ‚ทใƒผใจใ‚ปใ‚ญใƒฅใƒชใƒ†ใ‚ฃใ€ใ‚’้ธๆŠžใ€ใ€Œใ‚ตใƒผใƒ‰ใƒ‘ใƒผใƒ†ใ‚ฃCookieใ€ใ‚’้ธๆŠžใ™ใ‚‹ใจไธ‹่จ˜ใฎ็”ป้ขใซใชใ‚‹ใ€‚ใ€Œใ‚ตใƒผใƒ‰ใƒ‘ใƒผใƒ†ใ‚ฃCookieใ‚’ใƒ–ใƒญใƒƒใ‚ฏใ™ใ‚‹ใ€ใซใƒใ‚งใƒƒใ‚ฏใ‚’ๅ…ฅใ‚Œใ‚‹
1-chrome_setting.png

IDPใ‚ตใ‚คใƒˆใง็™ป้Œฒใ™ใ‚‹

https://<IDPใ‚ตใ‚คใƒˆ>/saa/idp/register.php ใธใ‚ขใ‚ฏใ‚ปใ‚นใ—ใพใ™ใ€‚
3-idp_register.png
ใƒฆใƒผใ‚ถๅใ‚’ๅ…ฅๅŠ›ใ—ใ€็™ป้Œฒใ‚’ๆŠผใ—ใพใ™ใ€‚
ใ€ŒRPใ‚ตใ‚คใƒˆใธๆˆปใ‚Šใพใ™ใ€ ใ‚’ใ‚ฏใƒชใƒƒใ‚ฏใ—ใพใ™ใ€‚

RPใ‚ตใ‚คใƒˆใธใ‚ขใ‚ฏใ‚ปใ‚นใ™ใ‚‹

ใ€ŒRPใ‚ตใ‚คใƒˆใธๆˆปใ‚Šใพใ™ใ€ ใ‚’ใ‚ฏใƒชใƒƒใ‚ฏใ™ใ‚‹ใจ https://<RPใ‚ตใ‚คใƒˆ>/saa/rp/index.php ใธใ‚ขใ‚ฏใ‚ปใ‚นใ•ใ‚Œใพใ™ใ€‚
ไธ‹่จ˜ใฎ็”ป้ขใซใชใ‚Šใพใ™ใ€‚
2-rp_site.png
ใ‚ชใƒฌใƒณใ‚ธ่‰ฒใŒiframe ใงๅŸ‹ใ‚่พผใพใ‚ŒใŸIDPใ‚ตใ‚คใƒˆใฎใ‚ณใƒณใƒ†ใƒณใƒ„๏ผˆiframe.php๏ผ‰ใงใ™ใ€‚
DevToolsใ‚’้–‹ใใพใ™ใ€Networkใ‚ฟใƒ–ใ‚’้ธๆŠžใ—ใ€iframe.phpใฎใ‚ขใ‚ฏใ‚ปใ‚นใ‚’้ธๆŠžใ—ใ€Cookiesใ‚ฟใƒ–ใ‚’้ธๆŠžใ—ใพใ™ใ€‚ไธ‹ใฎใ‚ญใƒฃใƒ—ใƒใƒฃใฎใ‚ˆใ†ใซใ€PHPSESSIDใŒ้ป„่‰ฒใชใ‚Šใƒ–ใƒญใƒƒใ‚ฏใ•ใ‚Œใฆใ„ใ‚‹ใ“ใจใŒ็ขบ่ชใงใใพใ™ใ€‚
4-3rdparty_cookie_blocked.png

CookieใŒใƒ–ใƒญใƒƒใ‚ฏใ•ใ‚Œใฆใ„ใ‚‹ใŸใ‚็™ป้Œฒใ—ใŸใƒฆใƒผใ‚ถๅใŒ็ขบ่ชใงใใšใ€ใ‚ฒใ‚นใƒˆใจ่กจ็คบใ•ใ‚Œใพใ™ใ€‚
Storage Access APIใ‚’ไฝฟใ†ๅ‰ใซใ‚ตใƒผใƒ‰ใƒ‘ใƒผใƒ†ใ‚ฃCookieใŒใƒ–ใƒญใƒƒใ‚ฏใ•ใ‚ŒใŸ็Šถๆ…‹ใงXHRใƒชใ‚ฏใ‚จใ‚นใƒˆใ‚’ใ—ใฆใฟใพใ™ใ€‚2ๆฎต็›ฎใฎใƒœใ‚ฟใƒณใ€ŒXMLHttpRequestใงCookieใ‚’็ขบ่ชใ™ใ‚‹ใ€ใ‚’ๆŠผใ—ใฆใใ ใ•ใ„ใ€‚get_cookie.phpใซXHRใƒชใ‚ฏใ‚จใ‚นใƒˆใ•ใ‚Œใพใ™ใ€‚
DevToolsใ‚’้–‹ใใ€ๅ…ˆใปใฉใฎใ‚ˆใ†ใซget_cookie.phpใ‚’้ธๆŠžใ—ใ€Cookiesใ‚ฟใƒ–ใ‚’้ธๆŠžใ—ใพใ™ใ€‚ๅ…ˆใปใฉใจๅŒใ˜ใ‚ˆใ†ใซใ€PHPSESSIDใŒ้ป„่‰ฒใชใ‚ŠXHRใƒชใ‚ฏใ‚จใ‚นใƒˆใงใ‚‚CookieใŒใƒ–ใƒญใƒƒใ‚ฏใ•ใ‚Œใฆใ„ใ‚‹ใ“ใจใŒ็ขบ่ชใงใใพใ™ใ€‚
6-get_cookie_blocked.png

Storage Access APIใ‚’ไฝฟใ†

ใ€ŒrequestStorageAccess()ใ‚’callใ€ใƒœใ‚ฟใƒณใ‚’ๆŠผใ—ใพใ™ใ€‚
ไธ‹่จ˜ใฎใ‚ˆใ†ใชใƒ€ใ‚คใ‚ขใƒญใ‚ฐใŒ่กจ็คบใ•ใ‚Œใพใ™ใ€‚
5-dialog.png
ใ€Œ่จฑๅฏใ™ใ‚‹ใ€ใ‚’ๆŠผใ—ใพใ™ใ€‚
ใ€Œ่จฑๅฏใ™ใ‚‹ใ€ใ‚’ๆŠผใ—ใŸๅพŒใซใ€2ๆฎต็›ฎใฎใƒœใ‚ฟใƒณใ€ŒXMLHttpRequestใงCookieใ‚’็ขบ่ชใ™ใ‚‹ใ€ใ‚’ๆŠผใ—ใฆใใ ใ•ใ„ใ€‚
DevToolsใ‚’้–‹ใใ€ๅ…ˆใปใฉใจๅŒใ˜ใ‚ˆใ†ใซget_cookie.phpใ‚’้ธๆŠžใ—ใ€Cookiesใ‚ฟใƒ–ใ‚’้ธๆŠžใ—ใพใ™ใ€‚ไธ‹่จ˜ใฎใ‚ˆใ†ใซใ€PHPSESSIDใŒ้€ไฟกใ•ใ‚Œใฆใ„ใ‚‹ใ“ใจใŒ็ขบ่ชใงใใพใ™ใ€‚
7-get_cookie_accepted.png

ใ“ใ‚Œใฏใ€ใƒฆใƒผใ‚ถใ‚ขใ‚ฏใ‚ทใƒงใƒณใงrequestStorageAccess()ใŒcallใ•ใ‚ŒใŸๅพŒใฎใ€XHRใƒชใ‚ฏใ‚จใ‚นใƒˆใงใฏใ‚ตใƒผใƒ‰ใƒ‘ใƒผใƒ†ใ‚ฃCookieใŒ้€ไฟกใ•ใ‚Œใฆใ„ใ‚‹ใ“ใจใ‚’็คบใ—ใฆใ„ใพใ™ใ€‚ใ“ใ‚ŒใŒไปŠๅ›žใฎ่จ˜ไบ‹ใงไธ€็•ชไผใˆใŸใ„ใ“ใจใงใ™ใ€‚ไธŠๆ‰‹ใไฝฟใˆใฐใ‚ตใƒผใƒ‰ใƒ‘ใƒผใƒ†ใ‚ฃCookieใฎใƒ–ใƒญใƒƒใ‚ฏๅพŒใฎๆœ‰ๅŠนใชๅฏพ็ญ–ใซใชใ‚Šใพใ™ใ€‚
ใƒ–ใƒฉใ‚ฆใ‚ถใ‚’ใƒชใƒญใƒผใƒ‰ใ—ใŸๅพŒใซใ€2ๆฎต็›ฎใฎใƒœใ‚ฟใƒณใ€ŒXMLHttpRequestใงCookieใ‚’็ขบ่ชใ™ใ‚‹ใ€ใ‚’ๆŠผใ—ใฆใใ ใ•ใ„ใ€‚ไปŠๅบฆใฏใƒ–ใƒญใƒƒใ‚ฏใ•ใ‚Œใพใ™ใ€‚ใคใพใ‚Šใƒ–ใƒฉใ‚ฆใ‚ถใ‚’ใƒชใƒญใƒผใƒ‰ใ™ใ‚‹ใจใ‚ตใƒผใƒ‰ใƒผใƒ‘ใƒผใƒ†ใ‚ฃCookieใฏใƒ–ใƒญใƒƒใ‚ฏ็Šถๆ…‹ใซๆˆปใฃใฆใ—ใพใ„ใพใ™ใ€‚ใ“ใ‚Œใฏใ‚„ใ‚„ๅŽณใ—ใ„ไป•ๆง˜ใงใ™ใŒCHIPSใจ็ต„ใฟๅˆใ‚ใ›ใ‚‹ใ“ใจใงๅฏพๅ‡ฆใงใใพใ™ใ€‚ๆฌกใซ่ชฌๆ˜Žใ—ใพใ™ใ€‚

Storage Access APIใจCHIPSใ‚’ไฝฟใฃใŸๆฐธ็ถš็š„ใชใƒญใ‚ฐใ‚คใƒณ

3ๆฎต็›ฎใฎใƒœใ‚ฟใƒณใ€ŒXMLHttpRequestใงใƒญใ‚ฐใ‚คใƒณใ™ใ‚‹ใ€ใ‚’ๆŠผใ—ใฆใใ ใ•ใ„ใ€‚ใ“ใ‚ŒใฎๅฎŸ่ฃ…ใฏrequestStorageAccess()ใ‚’callใ—ใฆใ€่จฑๅฏใ•ใ‚Œใฆใ„ใŸใ‚‰ใ‚ทใƒผใ‚ฑใƒณใ‚นๅ›ณใฎ2-1.XHRใƒชใ‚ฏใ‚จใ‚นใƒˆใ—ใพใ™ใ€‚
10-xhr_login_success.png

็”ป้ขใŒๅˆ‡ใ‚Šๆ›ฟใ‚ใ‚Šใ€ใ•ใใปใฉ็™ป้Œฒใ—ใŸใƒฆใƒผใ‚ถๅใŒ่กจ็คบใ•ใ‚Œใพใ™ใ€‚COOKIEใฎ็’ฐๅขƒๅค‰ๆ•ฐใซใ‚‚PHPSESSIDใŒๅŠ ใ‚ใ‚Šใพใ—ใŸใ€‚
2-1.XHRใƒชใ‚ฏใ‚จใ‚นใƒˆใฎlogin_with_xhr.phpใฎใƒฌใ‚นใƒใƒณใ‚นใ‚’่ฆ‹ใ‚‹ใจใ€PHPSESSIDใŒSet-Cookieใ•ใ‚ŒใฆใŠใ‚Šใ€Partitionedๅฑžๆ€งใŒใคใ„ใฆใ„ใพใ™ใ€‚
9-xhr_login_http_resuponse_header.png
Partitoinedๅฑžๆ€งใ‚’ใคใ‘ใ‚‹ใจใ€ไธŠ่จ˜ใงใ‚‚่ฟฐในใŸใจใŠใ‚Šๅพ“ๆฅใฎCookieใจใฏ็•ฐใชใ‚Šใ€ใ‚ตใƒผใƒ‰ใƒ‘ใƒผใƒ†ใ‚ฃใ‚ณใƒณใƒ†ใ‚ญใ‚นใƒˆใงใ‚‚Cookieใฎ้€ไฟกใŒๅฏ่ƒฝใซใชใ‚Šใพใ™ใ€‚
ใ“ใฎSet-Cookieใ‚’ๅ—ใ‘ๅ–ใ‚Šใ€iframeใฎใ‚ณใƒณใƒ†ใƒณใƒ„ใ‚’ใƒชใƒ€ใ‚คใƒฌใ‚ฏใƒˆใ•ใ›ใŸใŸใ‚ใ€็”ป้ขใŒๅˆ‡ใ‚Šๆ›ฟใ‚ใ‚Šใƒฆใƒผใ‚ถๅใŒ่กจ็คบใ•ใ‚Œใพใ—ใŸใ€‚
ใƒ–ใƒฉใ‚ฆใ‚ถใ‚’ใƒชใƒญใƒผใƒ‰ใ—ใฆใฟใพใ™ใ€‚ใƒฆใƒผใ‚ถๅใŒ่กจ็คบใ•ใ‚ŒใŸใพใพใซใชใ‚‹ใฏใšใงใ™ใ€‚
Partitionedๅฑžๆ€งใฎใคใ„ใŸCookieใซใ‚ˆใ‚Šใ€ใ‚ตใƒผใƒ‰ใƒ‘ใƒผใƒ†ใ‚ฃใธCookieใŒ้€ไฟกใ•ใ‚Œใƒฆใƒผใ‚ถๅˆคๅˆฅใงใใฆใ„ใ‚‹ใ‹ใ‚‰ใงใ™ใ€‚Cookieใฎ้€ไฟกใ‚’่ฆ‹ใฆใฟใพใ™ใ€‚
11-xhr_login_after_cookie.png
ไธŠใฎPHPSESSIDใŒใŒ็™ฝใใชใ‚Šใƒ–ใƒญใƒƒใ‚ฏใ•ใ‚Œใฆใชใ„ใ“ใจใ‚’็คบใ—ใฆใ„ใพใ™ใ€‚Partitionedๅฑžๆ€งใฎCookieใซใฏPartition KeyใŒๅ…ฅใฃใฆใ„ใพใ™ใ€‚
ไธ‹ใฎCookieใฏๅพ“ๆฅใฎCookieใงๅผ•ใ็ถšใใƒ–ใƒญใƒƒใ‚ฏใ•ใ‚Œใฆใ„ใ‚‹ใ“ใจใŒๅˆ†ใ‹ใ‚Šใพใ™ใ€‚
ใ“ใฎใ‚ˆใ†ใซใƒฆใƒผใ‚ถใ‚ขใ‚ฏใ‚ทใƒงใƒณใงXHRใƒชใ‚ฏใ‚จใ‚นใƒˆใ‚’็™บ็”Ÿใ•ใ›ใใ“ใงใ‚ตใƒผใƒ‰ใƒ‘ใƒผใƒ†ใ‚ฃCookieใ‚’้€ไฟกใ—ใ€Partitionedๅฑžๆ€งใฎCookieใ‚’็™บ่กŒใ™ใ‚‹ใ“ใจใงๆฐธ็ถš็š„ใชใƒญใ‚ฐใ‚คใƒณใŒๅฏ่ƒฝใจใชใ‚Šใพใ—ใŸใ€‚

Storage Access APIใฎ่จฑๅฏใฏใฉใ“ใซไฟๅญ˜ใ•ใ‚Œใ‚‹๏ผŸ

ใ‚ตใ‚คใƒˆๅˆฅใฎ่จญๅฎšใซไฟๅญ˜ใ•ใ‚Œใ‚‹ใ‚ˆใ†ใงใ™ใ€‚ไธ‹่จ˜ใฎใ‚ˆใ†ใซใƒ–ใƒฉใ‚ฆใ‚ถใฎURLๆฌ„ใฎๅทฆๅดใฎใƒžใƒผใ‚ฏใ‚’ๆŠผใ™ใจใƒ€ใ‚คใ‚ขใƒญใ‚ฐใŒ่กจ็คบใ•ใ‚Œใ€ๅŸ‹ใ‚่พผใฟใ‚ณใƒณใƒ†ใƒณใƒ„ใฎๆœ‰ๅŠน/็„กๅŠนใจใ—ใฆ่จญๅฎšใ•ใ‚Œใพใ™ใ€‚
12-site-setting.png

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

Today's trending articles

2026ๅนด!ๅˆใ‚ขใ‚ฆใƒˆใƒ—ใƒƒใƒˆใ‚’ใ—ใ‚ˆใ†
yushibats

OCIใฎใƒŽใƒผใ‚ณใƒผใƒ‰ใƒปใ‚จใƒผใ‚ธใ‚งใƒณใƒˆใƒ“ใƒซใƒ€ใƒผใ€ŽAgent Factoryใ€ใŒใƒชใƒชใƒผใ‚น๏ผ่งฆใฃใฆใฟใŸ

Linked from these articles

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