å ç¢ã§ã¹ã±ãŒã©ãã«ãªECãµã€ãã®ã·ã§ããã³ã°ã«ãŒããæ§ç¯ããããã®ã»ãã·ã§ã³ç®¡çæè¡ã®å æ¬çã¬ã€ãããŠãŒã¶ãŒããŒã¿ãã»ãã¥ãªãã£ãããã©ãŒãã³ã¹ã«é¢ãããã¹ããã©ã¯ãã£ã¹ã解説ããŸãã
ã·ã§ããã³ã°ã«ãŒãå®è£ ã®ãã¹ã¿ãŒïŒã»ãã·ã§ã³ç®¡çã®æ·±æã解説
å€åã®æ¿ããEã³ããŒã¹ã®äžçã§ã¯ãé©åã«å®è£ ãããã·ã§ããã³ã°ã«ãŒãã¯ãé²èЧããŠãã顧客ã賌買客ã«å€ããããã«äžå¯æ¬ ã§ããæåããã·ã§ããã³ã°ã«ãŒãã®æ žå¿ã¯ã广çãªã»ãã·ã§ã³ç®¡çã«ãããŸãããã®èšäºã§ã¯ãEã³ããŒã¹ã¢ããªã±ãŒã·ã§ã³ã®ã»ãã·ã§ã³ç®¡çãçè§£ãå®è£ ããããã®å æ¬çãªã¬ã€ããæäŸããäžçäžã®ãŠãŒã¶ãŒã«ã·ãŒã ã¬ã¹ã§å®å šãªãŠãŒã¶ãŒãšã¯ã¹ããªãšã³ã¹ãä¿èšŒããŸãã
ã»ãã·ã§ã³ç®¡çãšã¯ïŒ
ã»ãã·ã§ã³ç®¡çãšã¯ãåããŠãŒã¶ãŒããã®è€æ°ã®ãªã¯ãšã¹ãã«ããã£ãŠç¶æ ãç¶æããããã»ã¹ã®ããšã§ããã·ã§ããã³ã°ã«ãŒãã®æèã§ã¯ããŠãŒã¶ãŒã远å ããååããã°ã€ã³ç¶æ ããã®ä»ã®èšå®ããã©ãŠãžã³ã°ã»ãã·ã§ã³å šäœã§è¿œè·¡ããããšãå«ã¿ãŸããã»ãã·ã§ã³ç®¡çããªããã°ãåããŒãžãªã¯ãšã¹ãã¯å®å šã«æ°ããç¡é¢ä¿ãªã€ãã³ããšããŠæ±ããããŠãŒã¶ãŒã¯å¥ã®ããŒãžã«ç§»åãããã³ã«ã«ãŒãã«ååãå远å ããããšãäœåãªããããŸãã
ãã®ããã«èããŠã¿ãŠãã ããã顧客ãç©ççãªåºèïŒäŸãã°ãããªã®ãã¡ãã·ã§ã³ããã£ãã¯ã京éœã®è¶å±ããã©ã±ã·ã¥ã®ã¹ãã€ã¹åžå ŽïŒã«å ¥ããšãåºå¡ã¯èšªåäžã®é¡§å®¢ãèŠããŠããŸããåºå¡ã¯é¡§å®¢ãäœãèŠãŠãããã奜ã¿ãéå»ã®ããåããèŠããŠãããããããŸãããã»ãã·ã§ã³ç®¡çã¯ããªã³ã©ã€ã³ã¹ãã¢ã«ãã®ãèšæ¶ããæäŸããã®ã§ãã
ãªãã»ãã·ã§ã³ç®¡çã¯ã·ã§ããã³ã°ã«ãŒãã«ãšã£ãŠéèŠãªã®ãïŒ
- ããŒãœãã©ã€ãºããããŠãŒã¶ãŒãšã¯ã¹ããªãšã³ã¹ïŒ ã»ãã·ã§ã³ç®¡çã«ãããããŒãœãã©ã€ãºãããæšèŠãã¿ãŒã²ãããçµã£ãããã¢ãŒã·ã§ã³ããããŠç°ãªãããã€ã¹éã§ã®äžè²«ããã·ã§ããã³ã°äœéšãå¯èœã«ãªããŸãã以åã«é²èЧããååã«åºã¥ããŠèªåã®å¥œã¿ã«åãããååã衚瀺ãããããšãæ³åããŠã¿ãŠãã ãããããã¯ã»ãã·ã§ã³ããŒã¿ã«ãã£ãŠå®çŸãããŠããŸãã
- ã·ã§ããã³ã°ã«ãŒãããŒã¿ã®æ°žç¶æ§ïŒ 決å®çã«éèŠãªã®ã¯ãã»ãã·ã§ã³ç®¡çã«ãã£ãŠããŠãŒã¶ãŒããŠã§ããµã€ããããã²ãŒãããéã«ã«ãŒãã«è¿œå ãããååãä¿æãããããšã§ããããã«ããããã©ã¹ãã¬ãŒã·ã§ã³ãé²ããè³Œå ¥å®äºãä¿é²ããŸãã
- èªèšŒãšã»ãã¥ãªãã£ïŒ ã»ãã·ã§ã³ç®¡çã¯ããŠãŒã¶ãŒIDã®æ€èšŒãæ©å¯ããŒã¿ãžã®ã¢ã¯ã»ã¹å¶åŸ¡ãäžæ£ãªååŒããã®ä¿è·ã«äžå¯æ¬ ã§ããå®å šãªã»ãã·ã§ã³ã¯ãæªæã®ããæ»æè ããŠãŒã¶ãŒã¢ã«ãŠã³ããä¹ã£åããæ¯æãæ å ±ã«ã¢ã¯ã»ã¹ããã®ãé²ããŸãã
- ãŠã§ããµã€ãã®ããã©ãŒãã³ã¹åäžïŒ ã»ãã·ã§ã³ããŒã¿ãå¹ççã«ä¿åããããšã§ããŠã§ããµã€ãã¯ããŒã¿ããŒã¹ãžã®ã¯ãšãªãç¹°ãè¿ãå®è¡ããå¿ èŠæ§ãæžãããããéãèªã¿èŸŒã¿æéãšå¿çæ§ã®é«ããŠãŒã¶ãŒãšã¯ã¹ããªãšã³ã¹ãå®çŸã§ããŸãã
äžè¬çãªã»ãã·ã§ã³ç®¡çæè¡
ã»ãã·ã§ã³ç®¡çãå®è£ ããããã«ã¯ããã€ãã®æè¡ããããããããã«é·æãšçæããããŸããã©ã®æè¡ãéžæãããã¯ãã»ãã¥ãªãã£èŠä»¶ãã¹ã±ãŒã©ããªãã£ã®ããŒãºã䜿çšããæè¡ã¹ã¿ãã¯ãªã©ã®èŠå ã«ãã£ãŠæ±ºãŸããŸããããã§ã¯ãæãäžè¬çãªæ¹æ³ãããã€ã玹ä»ããŸãã
1. Cookie
Cookieã¯ããŠã§ããµã€ãããŠãŒã¶ãŒã®ã³ã³ãã¥ãŒã¿ã«ä¿åããå°ããªããã¹ããã¡ã€ã«ã§ãããããã¯äžè¬çã«ã»ãã·ã§ã³IDãä¿åããããã«äœ¿çšãããŸããã»ãã·ã§ã³IDã¯ãç¹å®ã®ãŠãŒã¶ãŒã»ãã·ã§ã³ãèå¥ããäžæã®ããŒã¯ã³ã§ãããŠãŒã¶ãŒããŠã§ããµã€ãã«å床ã¢ã¯ã»ã¹ãããšããã©ãŠã¶ã¯CookieããµãŒããŒã«éãè¿ãããµãŒããŒãé¢é£ããã»ãã·ã§ã³ããŒã¿ãååŸã§ããããã«ããŸãã
å©ç¹ïŒ
- å®è£ ãã·ã³ãã«ïŒ ã»ãšãã©ã®ãŠã§ãéçºãã¬ãŒã ã¯ãŒã¯ã䜿çšããŠãCookieã¯æ¯èŒçç°¡åã«èšå®ããã³ååŸã§ããŸãã
- åºããµããŒããããŠããïŒ ãã¹ãŠã®äž»èŠãªãŠã§ããã©ãŠã¶ãCookieããµããŒãããŠããŸãã
æ¬ ç¹ïŒ
- ã»ãã¥ãªãã£ãªã¹ã¯ïŒ Cookieã¯ãé©åã«åŠçãããªãå Žåãã¯ãã¹ãµã€ãã¹ã¯ãªããã£ã³ã°ïŒXSSïŒãã¯ãã¹ãµã€ããªã¯ãšã¹ããã©ãŒãžã§ãªïŒCSRFïŒæ»æã«å¯ŸããŠè匱ã«ãªãå¯èœæ§ããããŸãã
- ãµã€ãºå¶éïŒ Cookieã«ã¯ãµã€ãºå¶éïŒéåžžã¯çŽ4KBïŒããããä¿åã§ããããŒã¿éãå¶éãããŸãã
- ãŠãŒã¶ãŒã«ããå¶åŸ¡ïŒ ãŠãŒã¶ãŒã¯Cookieãç¡å¹ã«ãããåé€ãããããããšãã§ããããã«ããã»ãã·ã§ã³ç®¡çãäžæãããå¯èœæ§ããããŸãããŸããå€ãã®åœïŒäŸïŒæ¬§å·é£åå ïŒã§ã¯ãCookieã®äœ¿çšã«é¢ããŠãŠãŒã¶ãŒã®åæãå¿ èŠãšããå³ããèŠå¶ããããŸãã
CookieããŒã¹ã®ã»ãã·ã§ã³ç®¡çã®ãã¹ããã©ã¯ãã£ã¹ïŒ
- Secure屿§ä»ãCookieã®äœ¿çšïŒ `Secure`屿§ãèšå®ããŠãCookieãHTTPSæ¥ç¶çµç±ã§ã®ã¿éä¿¡ãããããã«ããŸãã
- HTTPOnly屿§ä»ãCookieã®äœ¿çšïŒ `HTTPOnly`屿§ãèšå®ããŠãã¯ã©ã€ã¢ã³ããµã€ãã®ã¹ã¯ãªãããCookieã«ã¢ã¯ã»ã¹ã§ããªãããã«ããXSSæ»æãç·©åããŸãã
- é©åãªæå¹æéã®èšå®ïŒ ã»ãã·ã§ã³ãã€ãžã£ãã¯ã®ãªã¹ã¯ãæžããããã«ãé·ãæå¹æéãé¿ããŸãããŠãŒã¶ãŒã®ã€ã³ã¿ã©ã¯ã·ã§ã³ããšã«æå¹æéããªã»ãããããã¹ã©ã€ãã£ã³ã°æå¹æéã®äœ¿çšãæ€èšããŠãã ããã
- CSRF察çã®å®è£ ïŒ ããŒã¯ã³ã䜿çšããŠCSRFæ»æãé²ããŸãã
2. URLãªã©ã€ãã£ã³ã°
URLãªã©ã€ãã£ã³ã°ã¯ãåããŒãžã®URLã«ã»ãã·ã§ã³IDãä»å ããæ¹æ³ã§ãããã®æè¡ã¯ãCookieãç¡å¹ãŸãã¯å©çšã§ããªãå Žåã«åœ¹ç«ã¡ãŸãã
å©ç¹ïŒ
- Cookieãç¡å¹ãªå Žåã§ãæ©èœããïŒ CookieããµããŒããããŠããªãå Žåã®ã»ãã·ã§ã³ç®¡çã®ä»£æ¿ã¡ã«ããºã ãæäŸããŸãã
æ¬ ç¹ïŒ
- ã»ãã¥ãªãã£ãäœãïŒ URLå ã®ã»ãã·ã§ã³IDã¯å®¹æã«ååããããå ±æããããããå¯èœæ§ããããã»ãã·ã§ã³ãã€ãžã£ãã¯ã®ãªã¹ã¯ãé«ãŸããŸãã
- URLãã¯ãªãŒã³ã§ãªããªãïŒ URLã«ã»ãã·ã§ã³IDãä»å ãããšãURLãé·ããªãããŠãŒã¶ãŒãã¬ã³ããªãŒã§ãªããªããŸãã
- SEOã®åé¡ïŒ æ€çŽ¢ãšã³ãžã³ãã»ãã·ã§ã³IDä»ãã®URLãæ£ããã€ã³ããã¯ã¹ããªãå¯èœæ§ããããŸãã
URLãªã©ã€ãã£ã³ã°ã®ãã¹ããã©ã¯ãã£ã¹ïŒ
- HTTPSã®äœ¿çšïŒ éä¿¡å šäœãæå·åããŠãã»ãã·ã§ã³IDãååãããã®ãé²ããŸãã
- 峿 Œãªæ€èšŒã®å®è£ ïŒ ã»ãã·ã§ã³IDãæ€èšŒããŠãæ¹ãããé²ããŸãã
- ä»ã®æ¹æ³ã®æ€èšïŒ å¯èœã§ããã°ãäž»èŠãªã»ãã·ã§ã³ç®¡çæè¡ãšããŠCookieããã®ä»ã®ããå®å šãªæ¹æ³ã䜿çšããŠãã ããã
3. é ããã©ãŒã ãã£ãŒã«ã
é ããã©ãŒã ãã£ãŒã«ãã¯ããŠãŒã¶ãŒã«ã¯èŠããŸããããã»ãã·ã§ã³IDããã®ä»ã®ããŒã¿ãä¿åããããã«äœ¿çšã§ããHTMLèŠçŽ ã§ãããŠãŒã¶ãŒããã©ãŒã ãéä¿¡ãããã³ã«ãã»ãã·ã§ã³ããŒã¿ã¯ä»ã®ãã©ãŒã ããŒã¿ãšäžç·ã«éä¿¡ãããŸãã
å©ç¹ïŒ
- Cookieãç¡å¹ãªå Žåã§ãæ©èœããïŒ URLãªã©ã€ãã£ã³ã°ãšåæ§ã«ãããã¯ä»£æ¿ã¡ã«ããºã ãæäŸããŸãã
æ¬ ç¹ïŒ
- å®è£ ãé¢åïŒ ãŠã§ããµã€ãäžã®ãã¹ãŠã®ãã©ãŒã ã«é ããã©ãŒã ãã£ãŒã«ãã远å ããå¿ èŠããããŸãã
- ã»ãã¥ãªãã£ãäœãïŒ URLãªã©ã€ãã£ã³ã°ãšåæ§ã«ãéä¿¡ãæå·åãããŠããªãå Žåãã»ãã·ã§ã³IDãååãããå¯èœæ§ããããŸãã
é ããã©ãŒã ãã£ãŒã«ãã®ãã¹ããã©ã¯ãã£ã¹ïŒ
- HTTPSã®äœ¿çšïŒ éä¿¡å šäœãæå·åããŸãã
- ããŒã¿ã®æ€èšŒïŒ é ããã©ãŒã ãã£ãŒã«ãã«ä¿åãããŠããããŒã¿ãæ€èšŒããŠãæ¹ãããé²ããŸãã
- ä»ã®æ¹æ³ã®æ€èšïŒ Cookieããã®ä»ã®ããå®å šãªãªãã·ã§ã³ãå®çŸäžå¯èœãªå Žåã«ã®ã¿ããã®æ¹æ³ã䜿çšããŠãã ããã
4. ãµãŒããŒãµã€ãã»ãã·ã§ã³
ãµãŒããŒãµã€ãã»ãã·ã§ã³ã¯ãã»ãã·ã§ã³ããŒã¿ããµãŒããŒäžã«ä¿åãããããäžæã®ã»ãã·ã§ã³IDã«é¢é£ä»ããæ¹æ³ã§ããã»ãã·ã§ã³IDã¯éåžžããŠãŒã¶ãŒã®ã³ã³ãã¥ãŒã¿äžã®Cookieã«ä¿åãããŸããããã¯äžè¬çã«ãæãå®å šã§ã¹ã±ãŒã©ãã«ãªã¢ãããŒããšèŠãªãããŠããŸãã
å©ç¹ïŒ
- å®å šïŒ ã»ãã·ã§ã³ããŒã¿ã¯ãµãŒããŒäžã«ä¿åããããããã¯ã©ã€ã¢ã³ããµã€ãæ»æãžã®é²åºãªã¹ã¯ãäœæžãããŸãã
- ã¹ã±ãŒã©ãã«ïŒ ãµãŒããŒãµã€ãã»ãã·ã§ã³ã¯ãã»ãã·ã§ã³ã¯ã©ã¹ã¿ãªã³ã°ã忣ãã£ãã·ã³ã°ãªã©ã®æè¡ã䜿çšããŠãè€æ°ã®ãµãŒããŒã«ããã£ãŠç°¡åã«æ¡åŒµã§ããŸãã
- 倧容éã®ããŒã¿ã¹ãã¬ãŒãžïŒ ãµãŒããŒã¯ãCookieãšæ¯èŒããŠã¯ããã«å€§éã®ã»ãã·ã§ã³ããŒã¿ãä¿åã§ããŸãã
æ¬ ç¹ïŒ
- ãµãŒããŒãªãœãŒã¹ãå¿ èŠïŒ ãµãŒããŒäžã«ã»ãã·ã§ã³ããŒã¿ãä¿åãããšãã¡ã¢ãªããã£ã¹ã¯ã¹ããŒã¹ãªã©ã®ãµãŒããŒãªãœãŒã¹ãæ¶è²»ããŸãã
- è€éãïŒ ãµãŒããŒãµã€ãã»ãã·ã§ã³ã®å®è£ ã¯ãCookieã䜿çšãããããè€éã«ãªãå ŽåããããŸãã
ãµãŒããŒãµã€ãã»ãã·ã§ã³ã®ãã¹ããã©ã¯ãã£ã¹ïŒ
- 匷åãªã»ãã·ã§ã³IDã®äœ¿çšïŒ æå·åŠçã«å®å šãªä¹±æ°ãžã§ãã¬ãŒã¿ãŒã䜿çšããŠã»ãã·ã§ã³IDãçæããŸãã
- ã»ãã·ã§ã³ããŒã¿ã®å®å šãªä¿åïŒ ã»ãã·ã§ã³ã«ä¿åãããæ©å¯ããŒã¿ãæå·åããŸãã
- ã»ãã·ã§ã³ã¿ã€ã ã¢ãŠãã®å®è£ ïŒ éã¢ã¯ãã£ããªã»ãã·ã§ã³ãèªåçã«æéåãã«ããŠãã»ãã·ã§ã³ãã€ãžã£ãã¯ã®ãªã¹ã¯ãæžããããµãŒããŒãªãœãŒã¹ãè§£æŸããŸãã
- ã»ãã·ã§ã³ã¯ã©ã¹ã¿ãªã³ã°ãŸãã¯åæ£ãã£ãã·ã³ã°ã®äœ¿çšïŒ ãã©ãã£ãã¯ã®å€ããŠã§ããµã€ãã§ã¯ãããã©ãŒãã³ã¹ãšå¯çšæ§ãåäžãããããã«ãã»ãã·ã§ã³ããŒã¿ãè€æ°ã®ãµãŒããŒã«åæ£ãããŸããäŸãšããŠãã»ãã·ã§ã³ã¹ãã¬ãŒãžã«RedisãMemcachedããŸãã¯Cassandraã®ãããªããŒã¿ããŒã¹ã䜿çšããŸãã
- ã»ãã·ã§ã³ããŒã®å®æçãªããŒããŒã·ã§ã³ïŒ ã»ãã¥ãªãã£ã匷åããããã«ãã»ãã·ã§ã³ããŒã¿ã®æå·åã«äœ¿çšãããããŒã宿çã«å€æŽããŸãã
é©åãªã»ãã·ã§ã³ç®¡çæè¡ã®éžæ
æé©ãªã»ãã·ã§ã³ç®¡çæè¡ã¯ãEã³ããŒã¹ã¢ããªã±ãŒã·ã§ã³ã®ç¹å®ã®èŠä»¶ã«ãã£ãŠç°ãªããŸããèæ ®ãã¹ãèŠçŽ ã®æŠèŠã以äžã«ç€ºããŸãã
- ã»ãã¥ãªãã£ïŒ ãµãŒããŒãµã€ãã»ãã·ã§ã³ãäžè¬çã«æãå®å šãªãªãã·ã§ã³ã§ããCookieã䜿çšããå Žåã¯ããªã¹ã¯ã軜æžããããã«é©åãªã»ãã¥ãªãã£å¯Ÿçãå®è£ ããŠãã ããã
- ã¹ã±ãŒã©ããªãã£ïŒ ãã©ãã£ãã¯ã®å€ããŠã§ããµã€ãã«ã¯ãã¯ã©ã¹ã¿ãªã³ã°ãŸãã¯åæ£ãã£ãã·ã³ã°ãåãããµãŒããŒãµã€ãã»ãã·ã§ã³ãäžå¯æ¬ ã§ãã
- ããã©ãŒãã³ã¹ïŒ ããã©ãŒãã³ã¹ã®ãªãŒããŒããããæå°éã«æããããã«ãã»ãã·ã§ã³ããŒã¿ã®ä¿åãšååŸãæé©åããŸããé »ç¹ã«ã¢ã¯ã»ã¹ãããã»ãã·ã§ã³ããŒã¿ã®ãã£ãã·ã¥ãæ€èšããŠãã ããã
- ãŠãŒã¶ãŒãšã¯ã¹ããªãšã³ã¹ïŒ ã»ãã·ã§ã³ç®¡çããŠãŒã¶ãŒã«ãšã£ãŠã·ãŒã ã¬ã¹ã§ééçã§ããããšã確èªããŸããäžèŠãªããã³ããããªãã€ã¬ã¯ãã§ã·ã§ããã³ã°äœéšã劚ããªãããã«ããŠãã ããã
- æè¡ã¹ã¿ãã¯ïŒ ãŠã§ãéçºãã¬ãŒã ã¯ãŒã¯ãšãµãŒããŒç°å¢ãšäºææ§ã®ããæè¡ãéžæããŠãã ããã
- ã³ã³ãã©ã€ã¢ã³ã¹ïŒ ã»ãã·ã§ã³ããŒã¿ãæ±ãéã«ã¯ãGDPRãCCPAãªã©ã®é¢é£ããããŒã¿ãã©ã€ãã·ãŒèŠå¶ãéµå®ããŠãã ãããããã¯ãã°ããŒãã«ãªãªãŒãã£ãšã³ã¹ã«ãµãŒãã¹ãæäŸããéã«ç¹ã«éèŠã§ããCookieããã®ä»ã®è¿œè·¡æè¡ãä¿åããããã®é©åãªãŠãŒã¶ãŒã®åæãåŸãããã«ããŠãã ããã
äŸãã°ããã©ãã£ãã¯ã®å°ãªãå°èŠæš¡ãªãªã³ã©ã€ã³ã¹ãã¢ã§ããã°ãåçŽãªCookieããŒã¹ã®ã»ãã·ã§ã³ã§ååãããããŸãããããããAmazonãAlibabaã®ãããªå€§èŠæš¡ãªEã³ããŒã¹ãã©ãããã©ãŒã ã§ã¯ãäœçŸäžãã®åæãŠãŒã¶ãŒãåŠçããããã«ã忣ãã£ãã·ã³ã°ãåããå ç¢ãªãµãŒããŒãµã€ãã»ãã·ã§ã³ãå¿ èŠã§ãã
ããŸããŸãªããã°ã©ãã³ã°èšèªãšãã¬ãŒã ã¯ãŒã¯ã«ãããã»ãã·ã§ã³ç®¡ç
ããŸããŸãªããã°ã©ãã³ã°èšèªãšãã¬ãŒã ã¯ãŒã¯ããã»ãã·ã§ã³ç®¡çã®çµã¿èŸŒã¿ãµããŒããæäŸããŠããŸãã以äžã«ããã€ãã®äŸã瀺ããŸãã
PHP
PHPã¯ã`session_start()`ã`$_SESSION`ã`session_destroy()`ãªã©ã®çµã¿èŸŒã¿ã»ãã·ã§ã³ç®¡ç颿°ãæäŸããŸããéåžžãã»ãã·ã§ã³IDãä¿åããããã«Cookieã䜿çšããŸããPHPã¯ãã»ãã·ã§ã³ã¹ãã¬ãŒãžã®å ŽæãCookieèšå®ãã»ãã·ã§ã³ã®æå¹æéãªã©ãã»ãã·ã§ã³ã®åäœãã«ã¹ã¿ãã€ãºããããã®æè»ãªèšå®ãªãã·ã§ã³ãæäŸããŸãã
äŸïŒ
2, "item2" => 1);
echo "Items in cart: " . count($_SESSION["cart"]);
//ã»ãã·ã§ã³ã¿ã€ã ã¢ãŠãã®äŸïŒ
$inactive = 600; //10å
if( !isset($_SESSION['timeout']) ) {
$_SESSION['timeout'] = time() + $inactive;
}
$session_life = time() - $_SESSION['timeout'];
if($session_life > $inactive)
{
session_destroy();
header("Location:logout.php");
}
$_SESSION['timeout']=time();
?>
Java
JavaãµãŒãã¬ãããšJavaServer PagesïŒJSPïŒã¯ã`HttpSession`ã€ã³ã¿ãŒãã§ãŒã¹ãéããŠã»ãã·ã§ã³ç®¡çã®çµã¿èŸŒã¿ãµããŒããæäŸããŸãããµãŒãã¬ããã³ã³ããã¯ãã»ãã·ã§ã³ã®äœæãä¿åãååŸãèªåçã«ç®¡çããŸãã
äŸïŒ
HttpSession session = request.getSession();
session.setAttribute("cart", cartItems);
List items = (List) session.getAttribute("cart");
Python (Flask/Django)
FlaskãDjangoã®ãããªPythonãŠã§ããã¬ãŒã ã¯ãŒã¯ã¯ã䟿å©ãªã»ãã·ã§ã³ç®¡çæ©èœãæäŸããŸããFlaskã¯`session`ãªããžã§ã¯ãã䜿çšããŠã»ãã·ã§ã³ããŒã¿ãä¿åããDjangoã¯ã»ãã·ã§ã³ã®äœæãšä¿åãåŠçããã»ãã·ã§ã³ããã«ãŠã§ã¢ãæäŸããŸãã
äŸ (Flask)ïŒ
from flask import Flask, session
app = Flask(__name__)
app.secret_key = 'your_secret_key' #匷åã§ã©ã³ãã ã«çæãããç§å¯éµã䜿çšããŠãã ããïŒ
@app.route('/')
def index():
if 'cart' not in session:
session['cart'] = []
session['cart'].append('new_item')
return f"Cart contents: {session['cart']}"
Node.js (Express)
Expressãã¬ãŒã ã¯ãŒã¯ã䜿çšããNode.jsã¯ã`express-session`ã`cookie-session`ãªã©ãã»ãã·ã§ã³ç®¡çã®ããã®ããã€ãã®äžéãŠã§ã¢ãªãã·ã§ã³ãæäŸããŸãããããã®äžéãŠã§ã¢ã¢ãžã¥ãŒã«ã¯ãã¡ã¢ãªãããŒã¿ããŒã¹ããã£ãã·ã³ã°ã·ã¹ãã ãªã©ãããŸããŸãªå Žæã«ã»ãã·ã§ã³ããŒã¿ãä¿åããæ©èœãæäŸããŸãã
äŸïŒ
const express = require('express');
const session = require('express-session');
const app = express();
app.use(session({
secret: 'your_secret_key', //匷åã§ã©ã³ãã ã«çæãããç§å¯éµã䜿çšããŠãã ããïŒ
resave: false,
saveUninitialized: true,
cookie: { secure: false } //æ¬çªç°å¢ã§ã¯HTTPSã䜿çšããtrueã«èšå®ããŠãã ãã
}));
app.get('/', (req, res) => {
if (!req.session.cart) {
req.session.cart = [];
}
req.session.cart.push('new_item');
res.send(`Cart contents: ${req.session.cart}`);
});
ã»ãã¥ãªãã£ã«é¢ããèæ ®äºé
ã»ãã·ã§ã³ç®¡çã¯ãEã³ããŒã¹ã»ãã¥ãªãã£ã®éèŠãªåŽé¢ã§ãã以äžã«ãäžå¯æ¬ ãªã»ãã¥ãªãã£ã«é¢ããèæ ®äºé ãããã€ã瀺ããŸãã
- ã»ãã·ã§ã³ãã€ãžã£ãã¯ïŒ æ»æè ãã»ãã·ã§ã³IDãçãã ãæšæž¬ãããããã®ãé²ããŸãã匷åãªã»ãã·ã§ã³IDã䜿çšããã»ãã·ã§ã³ã¿ã€ã ã¢ãŠããå®è£ ããã»ãã·ã§ã³ããŒã宿çã«ããŒããŒã·ã§ã³ããŸãã
- ã»ãã·ã§ã³åºå®åæ»æïŒSession FixationïŒïŒ æ»æè ããŠãŒã¶ãŒã«ç¹å®ã®ã»ãã·ã§ã³IDã®äœ¿çšã匷å¶ããã®ãé²ããŸãããã°ã€ã³æååŸã«ã»ãã·ã§ã³IDãåçæããŸãã
- ã¯ãã¹ãµã€ãã¹ã¯ãªããã£ã³ã°ïŒXSSïŒïŒ ãŠãŒã¶ãŒå ¥åãæ€èšŒããã³ãµãã¿ã€ãºããããšã§XSSæ»æããä¿è·ããŸããHTTPOnly Cookieã䜿çšããŠãã¯ã©ã€ã¢ã³ããµã€ãã®ã¹ã¯ãªãããã»ãã·ã§ã³Cookieã«ã¢ã¯ã»ã¹ããã®ãé²ããŸãã
- ã¯ãã¹ãµã€ããªã¯ãšã¹ããã©ãŒãžã§ãªïŒCSRFïŒïŒ ããŒã¯ã³ãªã©ã®CSRFä¿è·ã¡ã«ããºã ãå®è£ ããŠãæ»æè ããŠãŒã¶ãŒã«ä»£ãã£ãŠäžæ£ãªãªã¯ãšã¹ããè¡ãã®ãé²ããŸãã
- ããŒã¿æå·åïŒ ã¯ã¬ãžããã«ãŒãçªå·ãå人æ å ±ãªã©ãã»ãã·ã§ã³ã«ä¿åãããŠããæ©å¯ããŒã¿ãæå·åããŸãã
- 宿çãªã»ãã¥ãªãã£ç£æ»ïŒ 宿çãªã»ãã¥ãªãã£ç£æ»ã宿œããŠãã»ãã·ã§ã³ç®¡çå®è£ ã®æœåšçãªè匱æ§ãç¹å®ãã察åŠããŸãã第äžè ã®ã»ãã¥ãªãã£äŒç€Ÿã«ãããã¬ãŒã·ã§ã³ãã¹ããè匱æ§è©äŸ¡ãäŸé Œããããšãæ€èšããŠãã ããã
ã¹ã±ãŒã©ããªãã£ã«é¢ããèæ ®äºé
Eã³ããŒã¹ããžãã¹ãæé·ããã«ã€ããŠãã»ãã·ã§ã³ç®¡çã®å®è£ ãå¢å ãããã©ãã£ãã¯ãšããŒã¿éãåŠçã§ããããã«æ¡åŒµã§ããããšã確èªããããšãéèŠã§ãã以äžã«ãã¹ã±ãŒã©ããªãã£ã«é¢ããèæ ®äºé ãããã€ã瀺ããŸãã
- ã»ãã·ã§ã³ã¯ã©ã¹ã¿ãªã³ã°ïŒ ããã©ãŒãã³ã¹ãšå¯çšæ§ãåäžãããããã«ãã»ãã·ã§ã³ããŒã¿ãè€æ°ã®ãµãŒããŒã«åæ£ãããŸãã
- 忣ãã£ãã·ã³ã°ïŒ RedisãMemcachedãªã©ã®åæ£ãã£ãã·ã³ã°ã·ã¹ãã ã䜿çšããŠãé »ç¹ã«ã¢ã¯ã»ã¹ãããã»ãã·ã§ã³ããŒã¿ãä¿åããŸãã
- ããŒã¿ããŒã¹ã®æé©åïŒ å¹ççãªã»ãã·ã§ã³ããŒã¿ã®ä¿åãšååŸã確ä¿ããããã«ãããŒã¿ããŒã¹ã®ã¯ãšãªãšã¹ããŒããæé©åããŸãã
- ããŒããã©ã³ã·ã³ã°ïŒ ããŒããã©ã³ãµãŒã䜿çšããŠããã©ãã£ãã¯ãè€æ°ã®ãµãŒããŒã«åæ£ãããŸãã
- ã¹ããŒãã¬ã¹ã¢ãŒããã¯ãã£ïŒ ãµãŒããŒãžã®è² è·ã軜æžããããã«ãã»ãã·ã§ã³ããŒã¿ãã¯ã©ã€ã¢ã³ããµã€ãã«ä¿åããïŒäŸïŒJSON Web Tokensã䜿çšïŒã¹ããŒãã¬ã¹ã¢ãŒããã¯ãã£ã®æ¡çšãæ€èšããŸãããã ããã¯ã©ã€ã¢ã³ããµã€ãã«æ©å¯ããŒã¿ãä¿åããéã®ã»ãã¥ãªãã£äžã®åœ±é¿ãæ éã«æ€èšããŠãã ããã
ã»ãã·ã§ã³ç®¡çãšGDPR/CCPAã³ã³ãã©ã€ã¢ã³ã¹
ã»ãã·ã§ã³ç®¡çã¯ãã°ãã°å人ããŒã¿ã®åéãšä¿åã䌎ããããGDPRïŒäžè¬ããŒã¿ä¿è·èŠåïŒãCCPAïŒã«ãªãã©ã«ãã¢å·æ¶è²»è ãã©ã€ãã·ãŒæ³ïŒãªã©ã®ããŒã¿ãã©ã€ãã·ãŒèŠå¶ã®å¯Ÿè±¡ãšãªããŸããã°ããŒãã«ãªãªãŒãã£ãšã³ã¹åãã«ã»ãã·ã§ã³ç®¡çãå®è£ ããéã«ã¯ããããã®èŠå¶ãéµå®ããããšãäžå¯æ¬ ã§ãã
äž»ãªã³ã³ãã©ã€ã¢ã³ã¹ã«é¢ããèæ ®äºé ã¯æ¬¡ã®ãšããã§ãã
- éææ§ïŒ ã»ãã·ã§ã³ã§åéããã³ä¿åããããŒã¿ã®çš®é¡ã«ã€ããŠãŠãŒã¶ãŒã«æç¢ºã«éç¥ããŸããã»ãã·ã§ã³ããŒã¿ã®äœ¿ç𿹿³ã説æãããã©ã€ãã·ãŒããªã·ãŒãæäŸããŸãã
- åæïŒ Cookieããã®ä»ã®è¿œè·¡æè¡ãä¿åããåã«ããŠãŒã¶ãŒããæç€ºçãªåæãåŸãŸãã
- ããŒã¿æå°åïŒ ã»ãã·ã§ã³ç®¡çã«å¿ èŠãªæå°éã®ããŒã¿ã®ã¿ãåéããŸãã
- ããŒã¿ã»ãã¥ãªãã£ïŒ ã»ãã·ã§ã³ããŒã¿ãäžæ£ãªã¢ã¯ã»ã¹ãé瀺ããä¿è·ããããã®é©åãªã»ãã¥ãªãã£å¯Ÿçãå®è£ ããŸãã
- ããŒã¿ä¿æïŒ æç¢ºãªããŒã¿ä¿æããªã·ãŒã確ç«ããäžèŠã«ãªã£ãã»ãã·ã§ã³ããŒã¿ã¯åé€ããŸãã
- ãŠãŒã¶ãŒã®æš©å©ïŒ å人ããŒã¿ã«ã¢ã¯ã»ã¹ãä¿®æ£ãåé€ãããŠãŒã¶ãŒã®æš©å©ãå°éããŸãã
çµè«
广çãªã»ãã·ã§ã³ç®¡çã¯ãæåããEã³ããŒã¹ãã©ãããã©ãŒã ã®ç€ã§ããå©çšå¯èœãªããŸããŸãªæè¡ãçè§£ããé©åãªã»ãã¥ãªãã£å¯Ÿçãå®è£ ããã¹ã±ãŒã©ããªãã£ãšã³ã³ãã©ã€ã¢ã³ã¹ã®èŠä»¶ãèæ ®ããããšã§ãå Žæã«é¢ä¿ãªãã顧客ã«ã·ãŒã ã¬ã¹ã§å®å šãªã·ã§ããã³ã°äœéšãæäŸã§ããŸããé©åãªã¢ãããŒããéžæããã«ã¯ãç¹å®ã®ããŒãºãšåªå äºé ãæ éã«è©äŸ¡ããå¿ èŠããããŸããã»ãã·ã§ã³ç®¡çã®å®è£ ãå ç¢ã§ãã°ããŒãã«ãªãªãŒãã£ãšã³ã¹ã«é©ããŠããããšã確èªããããã«ãã»ãã¥ãªãã£å°éå®¶ãããã©ãŒãã³ã¹ãšã³ãžãã¢ã«çžè«ããããšããããããªãã§ãã ããã