strict¤Ê¥·¥¹¥Æ¥à¤ËÂФ¹¤ëSession FixationÂкö ¤³¤Î¥¨¥ó¥È¥ê¤ò¤Ï¤Æ¤Ê¥Ö¥Ã¥¯¥Þ¡¼¥¯¤Ë>ÄɲÃ

Session Fixation¤Ë¤Ä¤¤¤Æ¤ÏÏÃÂê¤Ë¤Ê¤Ã¤Æµ×¤·¤¤¤Î¤Çº£¤µ¤é²òÀ⤹¤ë¤Þ¤Ç¤â¤Ê¤¤¤È»×¤¦¡£¡Ä¡Ä¤È»×¤Ã¤¿¤é¤½¤¦¤Ç¤â¤Ê¤µ¤½¤¦¤Ê¤Î¤Ç¤Á¤ç¤Ã¤È½ñ¤¤¤Æ¤ß¤ë¡£

Session Fixation¤È¤Ï²¿¤«

°ìÈ̤ˡ¢Session Fixation¤È¤·¤ÆÏÃÂê¤Ë¤Î¤Ü¤ë¤Î¤Ï¡¢PHP¤Ê¤É¤Ë¤ª¤±¤ë°Ê²¼¤Î¤è¤¦¤Ê¼êË¡¤Ç¤¢¤ë¡£

http://www.example.com/index.php?PHPSESSID=abcde

¤³¤¦¤¹¤ë¤³¤È¤Ç¡¢(Âкö¤Î¼è¤é¤ì¤Æ¤¤¤Ê¤¤)PHP¤Ï¡¢¥»¥Ã¥·¥ç¥óID¤ò’abcde’¤È²ò¼á¤·¤Æ¤·¤Þ¤¦¡£¥»¥Ã¥·¥ç¥óID¤ÏËÜÍ襵¡¼¥Ð¡¼¤¬È¯¹Ô¤¹¤ë¤Ï¤º¤Î¤â¤Î¤Ç¤¢¤ë¤¬¡¢URI¤ËËä¤á¹þ¤à¤³¤È¤Ç¥¯¥é¥¤¥¢¥ó¥È¦¤«¤é¥»¥Ã¥·¥ç¥óID¤ò»ØÄꤹ¤ë¤³¤È¤¬½ÐÍè¤Æ¤·¤Þ¤¦¤â¤Î¤Ç¤¢¤ë¡£

¤³¤Î¡Ö¥»¥Ã¥·¥ç¥óID¤¬Ç¤°Õ¤Î¤â¤Î¤ËÀßÄê²Äǽ¤Ç¤¢¤ë¡×¤³¤È¤òÍøÍѤ·¤¿¹¶·â¤òSession Fixation¹¶·â¤È¸Æ¤Ö¡Ä¡Ä¤È²ò¼á¤·¤Æ¤¤¤ë¿Í¤Ï°Ê²¼¤ò°ú¤­Â³¤­ÆÉ¤ó¤Ç夭¤¿¤¤¡£

permissive¤Èstrict

¤³¤ÎPHP¤ÎÀȼåÀ­¤ËÂФ·¤Æ¡¢¡ÖURI¤«¤é¤Î»ØÄê¤Ç¥»¥Ã¥·¥ç¥óID¤¬Ç¤°Õ¤Ë»ØÄê¤Ç¤­¤Æ¤·¤Þ¤¦¡×ÅÀ¤Ð¤«¤ê¤¬Â礭¤¯¤È¤ê¤¢¤²¤é¤ì¤ë·¹¸þ¤Ë¤¢¤ë¤¬(*1)¡¢¸µ¶§¤Ï¡ÖÁ÷¤é¤ì¤Æ¤­¤¿¥»¥Ã¥·¥ç¥óID¤¬¥µ¡¼¥Ð¡¼¤Ë¤Ê¤¤¾ì¹ç¡¢¤½¤Î¥»¥Ã¥·¥ç¥óID¤Ç¿·¤¿¤Ë¥»¥Ã¥·¥ç¥ó¤ò³«»Ï¤·¤Æ¤·¤Þ¤¦¡×¤È¤¤¤¦ÅÀ¤À¡£URI(GET¥á¥½¥Ã¥É)¤Ë¸Â¤é¤º¡¢POST¥á¥½¥Ã¥É¤Ç¤âCookie¤ò½ñ¤­´¹¤¨¤ë¤³¤È¤Ç¤âǤ°Õ¤Îʸ»úÎó¤ò¥»¥Ã¥·¥ç¥óID¤Ë»ØÄꤹ¤ë¤³¤È¤Ï²Äǽ¤Ç¤¢¤ë¡£

¤³¤Î¤è¤¦¤Ë¡¢¥»¥Ã¥·¥ç¥óID¤òǤ°Õ¤Îʸ»úÎó¤ËÀßÄê²Äǽ¤Ç¤¢¤ë¥·¥¹¥Æ¥à¤òpermissive(´²ÍÆ)¤Ê¥·¥¹¥Æ¥à¡¢¤³¤ì¤¬ÄÌÍѤ·¤Ê¤¤¤â¤Î¤òstrict(¸·³Ê)¤Ê¥·¥¹¥Æ¥à¤È¸Æ¤Ö(*2)¡£ºÇ¶á¡ÖSession Fixation¡×¤È¤¤¤¦¤È¡¢permissive¤Ê¥·¥¹¥Æ¥à¤ËÂФ¹¤ë¤â¤Î¤ò»Ø¤¹¾ì¹ç¤¬Â¿¤¤¤¬¡¢¼Â¤Ïstrict¤Ê¥·¥¹¥Æ¥à¤Ë¤âSession Fixaton¤ÏÀ¸¤¸¤¦¤ë¡£¤Ä¤Þ¤ê¡¢permissive¤Ê¥·¥¹¥Æ¥à¤òstrict¤ËÊѹ¹¤·¤¿¤À¤±¤Ç¤Ï¡¢ËÜÅö¤ÎSession FixationÂкö¤Ë¤Ï¤Ê¤é¤Ê¤¤¤Î¤À¡£

Session FixationÂкö¤È¤·¤Æ¡¢

PHP Security Guide: Sessions

session_start();
if (!isset($_SESSION['initiated'])) {
    session_regenerate_id();
    $_SESSION['initiated'] = true;
}

¤Î¤è¤¦¤Ê¥³¡¼¥É¤ò»¶¸«¤¹¤ë¡£¤³¤ì¤Ï°ì¸«¡¢¤è¤¯¤Ç¤­¤¿Âкö¤Î¤è¤¦¤Ë»×¤¨¤ë¡£URI¤Ë»Å¹þ¤ó¤À×ó°ÕŪ¤Ê¥»¥Ã¥·¥ç¥óID¤Ç¤Ï¡¢$_SESSION[”initiated”]¤òtrue¤Ë¤¹¤ë¤³¤È¤ÏÆñ¤·¤¤¤¿¤á¡¢seesion_regenerate_id()¤ÇÀ¸À®¤µ¤ì¤¿¿·¤·¤¤¥»¥Ã¥·¥ç¥óID¤Î¤ß¤¬¼è°·¤ï¤ì¤ë¤è¤¦¤Ë¤Ê¤ë¡£

¤·¤«¤·¤³¤ì¤Ïpermissive¤Ê¥·¥¹¥Æ¥à¤òstrict¤Ë¶á¤Å¤±¤ëÊýºö¤Ë²á¤®¤Ê¤¤¡£¤³¤ÎÂкö¤ò¼è¤ì¤Ð¡¢¥·¥¹¥Æ¥à¤¬permissive¤Ç¤¢¤ë¤³¤È¤Ë¤Ä¤±¹þ¤àSession Fixation¤ÏËɤ²¤ë¤¬¡¢strict¤Ê¥·¥¹¥Æ¥à¤ËÂФ¹¤ëSession Fixation¤Ï°ÍÁ³¤È¤·¤ÆËɤ²¤Ê¤¤¤Î¤À¡£

strict¤Ê¥·¥¹¥Æ¥à¤ËÂФ¹¤ëSession Fixation

strict¤Ê¥·¥¹¥Æ¥à¤Ç¤Ï¥»¥Ã¥·¥ç¥óID¤Îµ¶Â¤¤¬¤Ç¤­¤Ê¤¤¡£¤³¤Î¤¿¤áSession Fixation¹¶·â¤Î²ÄǽÀ­¤Ï¶Ëü¤ËÄ㤯¤Ê¤ë¤¬¥¼¥í¤Ç¤Ï¤Ê¤¤¡£¤½¤ì¤Ç¤Ïstrict¤Ê¥·¥¹¥Æ¥à¤ËÂФ¹¤ëSession Fixation¤È¤Ï¤É¤¦¤¤¤Ã¤¿¤â¤Î¤À¤í¤¦¤«¡£

Î㤨¤Ð¡¢Ç§¾Ú¤òÍѤ¤¤¿¥·¥¹¥Æ¥à¤Ç¡¢

  1. ǧ¾Ú°ÊÁ°¤Î¥»¥Ã¥·¥ç¥óID¤òǧ¾Ú¸å¤â·Ñ³¤·¤ÆÍøÍѤ¹¤ë
  2. ǧ¾Ú¾õÂÖ¤¬½ªÎ»¤·¤Æ¤â¥»¥Ã¥·¥ç¥óID¤òÇË´þ¤·¤Ê¤¤

¤È¤¤¤¦Web¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤¬Â¸ºß¤·¤¿¤È¤¹¤ë¡£°­°Õ¤Î¥æ¡¼¥¶A¤¬¼«Ê¬¤Î¥¢¥«¥¦¥ó¥È¤Ç¥í¥°¥¤¥ó¤¹¤ë¡£ÅöÁ³¥»¥Ã¥·¥ç¥óID¤¬È¯¹Ô¤µ¤ì¤ë¤¬¡¢¤³¤Î»þ¤Î¥»¥Ã¥·¥ç¥óID¤òA¤Ï½ñ¤­Î±¤á¤Æ¤ª¤¯¡£¤½¤·¤Æ¥í¥°¥¢¥¦¥È¤·¡¢¤½¤ÎPC¤«¤éµî¤ë¡£½ñ¤­Î±¤á¤¿¥»¥Ã¥·¥ç¥óID¤Ï¡¢(2)¤Ë¤è¤ê»Ä¤Ã¤¿¤Þ¤Þ¤Ç¤¢¤ë¡£

¤½¤Îľ¸å¡¢Á±°Õ¤Î¥æ¡¼¥¶B¤¬Æ±¤¸PC¤ËΩ¤Ã¤¿¤È¤¹¤ë¡£¤½¤·¤Æ¥í¥°¥¤¥ó¤¹¤ë¡£¤³¤Î»þ¡¢(1)¤Ë¤è¤êA¤¬½ñ¤­Î±¤á¤¿¥»¥Ã¥·¥ç¥óID¤¬·Ñ³¤·¤ÆÍøÍѤµ¤ì¤ë¤¿¤á¡¢A¤Ï½ñ¤­Î±¤á¤¿¥»¥Ã¥·¥ç¥óID¤ò»È¤Ã¤ÆB¤ËÂФ·¤ÆSession Hijacking¤ò¹Ô¤¦¤³¤È¤¬¤Ç¤­¤ë¡£

¤³¤¦¤¤¤Ã¤¿¤³¤È¤ÏÉÔ²Äǽ¤Ë¶á¤¤¤È»×¤¦¤«¤âÃΤì¤Ê¤¤¡£¤·¤«¤·¡¢¥Í¥Ã¥È¥«¥Õ¥§¤Î¤è¤¦¤Ê¥Ñ¥Ö¥ê¥Ã¥¯¤Ê¾ì½ê¤Ë¤¢¤ëPC¤Ç¤Ï½¼Ê¬µ¯¤³¤ê¤¦¤ë¤³¤È¤À¤í¤¦¡£

¡Ö¤³¤ì¤ÏSession Fixation¤Ç¤Ï¤Ê¤¯Ê̤ÎÀȼåÀ­¤À¡×¤È»×¤¦¤«¤âÃΤì¤Ê¤¤¡£¤·¤«¤·¡¢Session Fixation¤Ï¡Ö¥æ¡¼¥¶¡¼¤Î¥»¥Ã¥·¥ç¥óID¤¬¥í¥°¥¤¥ó»þ°ÊÁ°¤Ë¸ÇÄꤵ¤ì¤Æ¤¤¤ë¡×¤³¤È¤¬ÌäÂê¤È¤µ¤ì¤Æ¤ª¤ê¡¢¤³¤ì¤âSession Fixation¤Î°ì¼ï¤È¹Í¤¨¤é¤ì¤ë¡£(*3)

¥»¥Ã¥·¥ç¥ó¤ËÂФ¹¤ë¸í²ò¤¬Session Fixation¤òÀ¸¤à

¤½¤â¤½¤â¤Ê¤¼Session Fixation¤¬È¯À¸¤¹¤ë¤Î¤«¡£¤³¤ì¤Ï¥»¥Ã¥·¥ç¥ó´ÉÍý¤Î³µÇ°¤ò¸í²ò¤·¤Æ¤¤¤ë¥±¡¼¥¹¤¬Â¿¤¤¤Î¤Ç¤Ï¤Ê¤¤¤«¤È¿ä¬¤¹¤ë¡£¥»¥Ã¥·¥ç¥ó´ÉÍý¤È¤Ï¡¢¤½¤Î̾¤ÎÄ̤ꤢ¤ë°ìÏ¢¤Î¥»¥Ã¥·¥ç¥ó¤ò°Ý»ý¤¹¤ë¤¿¤á¤Î»ÅÁȤߤǤ¢¤ë¡£¤½¤Î¤¿¤á(°ìÈÌŪ¤Ê)¥»¥Ã¥·¥ç¥ó´ÉÍý¤Ç¤Ï¡¢¥»¥Ã¥·¥ç¥ó¡Ö³«»Ï»þ¡×¤Ë¥»¥Ã¥·¥ç¥óID¤È¤¤¤¦¤â¤Î¤òȯ¹Ô¤·¤ÆUA¤ËÊÝ»ý¤µ¤»¤ë¡£¤½¤·¤ÆUA¾å¤Î¥»¥Ã¥·¥ç¥óID¤ò¾Ã¼º¤µ¤»¤¿(¤¢¤ë¤¤¤ÏUA¦¤ÇÇË´þ¤·¤¿)»þÅÀ¤Ç¥»¥Ã¥·¥ç¥ó¤Ï»ö¼Â¾å½ªÎ»¤¹¤ë(*4)¡£¥»¥Ã¥·¥ç¥óID¤Ï¤¢¤ë°ìÏ¢¤Î¥»¥Ã¥·¥ç¥ó¤òôÊݤ¹¤ë¥­¡¼(¥È¡¼¥¯¥ó)¤Ê¤Î¤Ç¤¢¤ë¡£

ǧ¾Ú¤ò»È¤¦Web¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ë¤ª¤¤¤Æ¤Ï¡¢Ç§¾Ú´°Î»(¥í¥°¥¤¥ó)¤«¤é¥í¥°¥¢¥¦¥È¤Þ¤Ç¤¬¥»¥Ã¥·¥ç¥ó¤È¤¤¤¨¤ë¤À¤í¤¦¡£¤³¤ì¤Ë¥»¥Ã¥·¥ç¥ó´ÉÍý¤òÍøÍѤ¹¤ë¤Ê¤é¤Ð¡¢¥»¥Ã¥·¥ç¥óID¤Ï¥í¥°¥¤¥ó»þ¤Ë¡Ö¿·¤¿¤Ë¡×ȯ¹Ô¤µ¤ì¡¢¥í¥°¥¢¥¦¥È»þ¤ËÇË´þ¤µ¤ì¤ë¤Ù¤­¤Ç¤¢¤ë¡£¤³¤¦¤¹¤ì¤ÐÂçÄñ¤Î(ǧ¾Ú¤ËÂФ¹¤ë)Session FixationÀȼåÀ­¤Ïµ¯¤³¤é¤Ê¤¤¡£

¤·¤«¤·¡¢¥í¥°¥¢¥¦¥È¤·¤Æ¤«¤é¼¡²ó¤Ë¥í¥°¥¤¥ó¤¹¤ë¤Þ¤Ç¤â²¿¤é¤«¤Î¾ðÊó¤òÊÝ»ý¤·¤Æ¤ª¤­¤¿¤¤¾ì¹ç¤â¤¢¤ë¤À¤í¤¦¡£¤³¤¦¤¤¤Ã¤¿¾ì¹ç¡¢¥í¥°¥¤¥ó»þ¤â¥í¥°¥¢¥¦¥È»þ¤â¥»¥Ã¥·¥ç¥óID¤òÇË´þ¤·¤Ê¤¤¤è¤¦¤Ê¼ÂÁõ¤Ë¤Ê¤ë¤À¤í¤¦¡£

¤³¤Î¼ÂÁõ¤Î¾ì¹ç¡¢¡Ö¤³¤Î¥»¥Ã¥·¥ç¥óID¤Ï²¿¤ò»Ø¤·¤Æ¤¤¤ë¤«¡×¤ò¹Í¤¨¤Æ¤ß¤è¤¦¡£¥í¥°¥¤¥ó»þ¤Ëȯ¹Ô¤µ¤ì¤ë¤Î¤Ç¤â¤Ê¤±¤ì¤Ð¡¢¥í¥°¥¢¥¦¥È»þ¤ËÇË´þ¤µ¤ì¤ë¤ï¤±¤Ç¤â¤Ê¤¤¡£¤Ä¤Þ¤ê¤³¤Î¥»¥Ã¥·¥ç¥óID¤Ïǧ¾Ú¥»¥Ã¥·¥ç¥ó¤ò»Ø¤·¤Æ¤¤¤ë¤Î¤Ç¤Ï¤Ê¤¤¡£Ç§¾Ú¥»¥Ã¥·¥ç¥ó¤ò¤Þ¤¿¤¤¤ÀÌ¡Á³¤ÈŤ¤´ü´Ö¤ò¥»¥Ã¥·¥ç¥ó¤È¤·¤Æ¤¤¤ë¤Î¤Ç¤¢¤ë¡£¤³¤Î´Ö¡¢Â¾¤Î¥æ¡¼¥¶¤¬¥í¥°¥¤¥ó¤¹¤ë²ÄǽÀ­¤â½¼Ê¬¤¢¤ë¡£¤³¤Î¥»¥Ã¥·¥ç¥óID¤ËɳÉÕ¤±¤é¤ì¤¿¡Ö¥»¥Ã¥·¥ç¥ó¡×¤Ï¡Ö¥í¥°¥¤¥óÃæ¤«¤É¤¦¤«¡×¤È¤ÏÁ´¤¯´Ø·¸¤Ê¤¤¤Î¤Ç¤¢¤ë¡£

¤Ä¤Þ¤ê¡¢¤³¤¦¤¤¤Ã¤¿¥·¥¹¥Æ¥à¤Î¾ì¹ç¡¢¡Ö¥í¥°¥¤¥óÃæ¤«¤É¤¦¤«¡×¤Ë´Ø¤·¤Æ¤Ï¤¤¤ï¤æ¤ë¥»¥Ã¥·¥ç¥ó´ÉÍý¤ÏÁ´¤¯¹Ô¤ï¤ì¤Æ¤¤¤Ê¤¤¤³¤È¤Ë¤Ê¤ë¡£Session Fixation¹¶·â¤È¤Ï¤³¤Î¡ÖÀµ¤·¤¤¥»¥Ã¥·¥ç¥ó´ÉÍý¤¬¹Ô¤ï¤ì¤Æ¤¤¤Ê¤¤Éôʬ¡×¤ËÂФ·¤Æ¹Ô¤ï¤ì¤ë¹¶·â¤Ç¤¢¤ë¤È¸À¤¨¤ë¡£strict¤Ê¥·¥¹¥Æ¥à¤Ç¤â»È¤¤Êý¤ò´Ö°ã¤¨¤ì¤ÐÀȼåÀ­¤òÀ¸¤à¤Î¤ÏÅöÁ³¤È¸À¤¨¤è¤¦¡£¤â¤Á¤í¤ó¾å½Ò¤Î’initiated’¤òtrue¤Ë¤¹¤ë¤è¤¦¤ÊÂкö¤Ç¤Ï´Ö¤Ë¹ç¤ï¤Ê¤¤¡£

¤Ç¤Ï¤É¤¦¤¹¤ì¤Ð¤¤¤¤¤Î¤«

Åú¤¨¤Ï´Êñ¤Ç¡¢¡Ö¥í¥°¥¤¥óÃæ¤«¤É¤¦¤«¡×¤òÊݾڤ¹¤ë¥»¥Ã¥·¥ç¥óID¤ÎÂå¤ï¤ê¤Ë¤Ê¤ë¤â¤Î¤ò¤â¤¦1¤ÄÍѰդ¹¤ì¤ÐÎɤ¤¡£¤Ä¤Þ¤ê¡¢¥»¥Ã¥·¥ç¥ó¤ÎÃæ¤Ë¤â¤¦°ì¤Ä¥»¥Ã¥·¥ç¥ó¤òºî¤Ã¤Æ¤ä¤ì¤ÐÎɤ¤¤Î¤À¡£¥³¡¼¥É¤Ï°Ê²¼¤Î¤è¤¦¤Ë¤Ê¤ë¤À¤í¤¦¡£

// ======== ǧ¾ÚÀ®¸ù»þ ======== 
$token = md5(uniqid(rand(), true)); // ¤³¤Îʸ»úÎó¤¬¥í¥°¥¤¥óÃæ¤ò¼¨¤¹¥»¥Ã¥·¥ç¥óID¤ÎÂå¤ï¤ê
$_SESSION['auth_key'] = $token;
$_COOKIE['auth_key']  = $token;

// ======== ¥í¥°¥¤¥óÃæ ======== 
if( ! isset($_SESSION['auth_key'])
 || $_SESSION['auth_key'] == ""
 || $_SESSION['auth_key'] !== $_COOKIE['auth_key']){
    // ǧ¾Ú¥¨¥é¡¼
    exit;
}

// ======== ¥í¥°¥¢¥¦¥È»þ ======== 
$_SESSION['auth_key'] = "";

‘auth_key’¤ÎÆâÍÆ¤Ïͽ¬ÉÔ²Äǽ¤Êʸ»úÎó¤Ç¤¢¤ë¤È¤¹¤ë¡£¤¹¤ë¤È¤³¤ì¤Ï¡¢Ç§¾Ú¤¬À®¸ù¤·¤¿UA¤·¤«ÃΤé¤Ê¤¤¤³¤È¤Ë¤Ê¤ë¡£¾åµ­¤ÎÎã¤ÇA¤¬¥»¥Ã¥·¥ç¥óID¤ò»ý¤Áµ¢¤Ã¤¿¤È¤·¤Æ¤â¡¢B¤¬Ç§¾Ú¤·¤¿»þ¤Ë¼õ¤±¼è¤Ã¤¿’auth_key’¤ÎÆâÍÆ¤ÏÃΤê¤è¤¦¤¬¤Ê¤¤¤Î¤ÇSession Fixation¤ÏÀ®¸ù¤·¤Ê¤¤¡£

Ãí¼á

(*1)¥»¥Ã¥·¥ç¥óID¤Ä¤­URI¤òWeb¥µ¥¤¥È¤ä¥á¡¼¥ë¤Çή¤»¤Ð¡¢URI¤ò³«¤¤¤¿UA¤Î¥»¥Ã¥·¥ç¥óID¤ÏÁ´¤Æ’abcde’¤Ë¸ÇÄꤵ¤ì¤Æ¤·¤Þ¤¤¡¢Ìµº¹Ê̹¶·â¤¬²Äǽ¤È¤Ê¤ë¤¿¤á¡¢¡ÖURI¤Ë¥»¥Ã¥·¥ç¥óID¤¬Ëä¤á¹þ¤ß²Äǽ¡×¤È¤¤¤¦ÀȼåÀ­¤¬¿¼¹ï¤ÊÌäÂê¤Ç¤¢¤Ã¤¿¤³¤È¤Ï´Ö°ã¤¤¤Ê¤¤¡£

¤Ê¤ª¡¢session.use_only_cookies(¥»¥Ã¥·¥ç¥óID¤Î¼õ¤±ÅϤ·¤òCookie¤Î¤ß¤Ë¤¹¤ë)¤ò1¤Ë¤¹¤ì¤Ð¤³¤ÎÌäÂ꤬²ò·è¤¹¤ë¤è¤¦¤Ë²òÀ⤷¤Æ¤¤¤ë¥µ¥¤¥È¤â¿¤¤¤¬(¤â¤Á¤í¤ó¤«¤Ê¤ê¸ú²ÌŪ¤ÊÂкö¤Ç¤Ï¤¢¤ë¤¬)¡¢Cookie¤Î¥¯¥í¥¹¥É¥á¥¤¥óÀȼåÀ­¤ä¡¢XSS¤Ë¤è¤ëjavascript¤ÎËä¤á¹þ¤ß¤Ê¤É¤ÇCookie¤ÎÆâÍÆ¤½¤Î¤â¤Î¤ò½ñ¤­´¹¤¨¤Æ¤·¤Þ¤¦¹¶·â¼êË¡¤¬Â¸ºß¤¹¤ë¤é¤·¤¤(¸¡¾Ú¤·¤¿¤ï¤±¤Ç¤Ï¤Ê¤¤)¤Î¤Ç¡¢¤³¤ì¤À¤±¤Ç¤Ï½¼Ê¬¤ÊÂкö¤È¤Ï¤¤¤¨¤Ê¤¤¡£

(*2)permissive¤Èstrict¤Î¸ì¤Ë¤Ä¤¤¤Æ¤Ï¡¢Session Fixation Vulnerability in Web-based Applications @acros¤è¤êÇÒ¼Ú¤·¤¿

Strict Session´ÉÍý¥Ñ¥Ã¥Á@yohgaki»á ¤Ç¡¢PHP¤Îpermissive¤Ê¥»¥Ã¥·¥ç¥ó´ÉÍý¤òstrict¤ËÊѹ¹¤¹¤ë¥Ñ¥Ã¥Á¤¬¸ø³«¤µ¤ì¤Æ¤¤¤ë¡£

(*3) Session Fixation Vulnerability in Web-based Applications

We’ll call this class of attacks “session fixation” attacks, because the user’s session ID has been fixed in advance instead of having been generated randomly at login time.

ÀÛÌõ¡Ö²æ¡¹¤Ï¤³¤Î¼ïÎà¤Î¹¶·â¤ò”session fixation”¹¶·â¤È¸Æ¤Ö¤³¤È¤Ë¤¹¤ë¡£¥í¥°¥¤¥ó»þ¤Ë¥é¥ó¥À¥à¤ËÀ¸À®¤µ¤ì¤ë¤Ï¤º¤Î¥æ¡¼¥¶¡¼¤Î¥»¥Ã¥·¥ç¥óID¤¬¡¢»öÁ°¤Ë¸ÇÄꤵ¤ì¤Æ¤¤¤ë¤«¤é¤Ç¤¢¤ë¡×

(*4)ËÜÍè¤Ê¤é¥µ¡¼¥Ð¡¼¤¬¥»¥Ã¥·¥ç¥ó¾ðÊó¤òÇË´þ¤·¤¿¾ì¹ç¤â¥»¥Ã¥·¥ç¥ó¤Ï½ªÎ»¤µ¤ì¤ë¤Ù¤­¤Ç¤¢¤ë¤¬¡¢¤³¤ì¤ò¹Ô¤ï¤Ê¤¤¤Î¤¬permissive¤Ê¥·¥¹¥Æ¥à¤Ç¤¢¤ë(¸·Ì©¤Ë¤Ï¡¢Æ±¤¸¥»¥Ã¥·¥ç¥óID¤ÇÊ̤Υ»¥Ã¥·¥ç¥ó¤ò³«»Ï¤·¤Æ¤·¤Þ¤¦)

17 ·ï¤Î¥³¥á¥ó¥È - “strict¤Ê¥·¥¹¥Æ¥à¤ËÂФ¹¤ëSession FixationÂкö”

  1. anonymous ¤Î¥³¥á¥ó¥È

    ¤³¡¼¤æ¡¼À߷פ¹¤ë¿Í¤Ï¡¢
    ¥»¥Ã¥·¥ç¥ó´ÉÍý¥Æ¡¼¥Ö¥ë¤È¤«¡¢
    ¥¯¥é¥¤¥¢¥ó¥È¾ÚÌÀ½ñ¤È¤«
    ÃΤé¤Ê¤¤¤ó¤¸¤ã¤Ê¤¤¸¶»Ï¿Í¤Ê¤ó¤¸¤ã¤Ê¤¤¤«¤È»×¤Ã¤Æ¤·¤Þ¤¦¡£

  2. anonymous ¤Î¥³¥á¥ó¥È

    ¤³¡¼¤æ¡¼À߷פ¹¤ë¿Í¤Ï¡¢
    ¥»¥Ã¥·¥ç¥ó´ÉÍý¥Æ¡¼¥Ö¥ë¤È¤«¡¢
    ¥¯¥é¥¤¥¢¥ó¥È¾ÚÌÀ½ñ¤È¤«¡¢
    Kerberos¤È¤«¡¢
    Á´Á³ÃΤé¤Ê¤¤
    ¸¶»Ï¿Í¤Ê¤ó¤¸¤ã¤Ê¤¤¤«¤È»×¤Ã¤Æ¤·¤Þ¤¦¡£

  3. ¶â¾² ¤Î¥³¥á¥ó¥È

    ¡ä¤Ç¤Ï¤É¤¦¤¹¤ì¤Ð¤¤¤¤¤Î¤«

    ¤«¤Ê¤À¤µ¤ó¤ÎÂкö¤âÌÌÇò¤¤¤Ê¤È»×¤¤¤Þ¤·¤¿¤¬¡¢Session FixationÂкö¤È¤·¤Æ¤Ï
    ¡Öǧ¾Ú¾õÂÖ¤ËÊѹ¹¤¬¤¢¤Ã¤¿¤éSessionID¤òÊѹ¹¤¹¤ë¡×
    ¤È¤¤¤¦¤Î¤¬Èó¾ï¤Ë°ìÈÌŪ¤ËÃΤé¤ì¤Æ¤¤¤ëÂкö¤À¤È»×¤¤¤Þ¤¹¡£

  4. ¤«¤Ê¤À ¤Î¥³¥á¥ó¥È

    > ¡Öǧ¾Ú¾õÂÖ¤ËÊѹ¹¤¬¤¢¤Ã¤¿¤éSessionID¤òÊѹ¹¤¹¤ë¡×
    ¤Ê¤ë¤Û¤É¡£Ç§¾Ú¾õÂÖ¤¬ÊѤï¤ë¤´¤È¤Ësession_regenerate_id()¤òȯ¹Ô¤¹¤ë¤È¤«¡¢¤½¤¦¤¤¤Ã¤¿
    ´¶¤¸¤ÎÂкö¤Ç¤·¤ç¤¦¤«¡£

    Áᮤä¤Ã¤Æ¤ß¤è¤¦¤È»×¤Ã¤Æsession_regenerate_id()¤Î¸¡¾Ú¥³¡¼¥É½ñ¤¤¤Æ¤ß¤¿¤ó¤Ç¤¹¤±¤É¡¢
    ¤â¤·¤«¤·¤Æ¤³¤Î´Ø¿ôÌäÂ꿤¯¤Ê¤¤¤Ç¤¹¤«¡©¤½¤ì¤«²¶¤¬¿²¤Ü¤±¤Æ¤ë¤«¡Ä¡Ä¡£

    º£Æü¤ÏÁá¤á¤Ë¿²¤ÆÌÀÆü¤¢¤¿¤ê¸¡¾Ú¤·¤Æ¤ß¤Þ¤¹¡£¤¢¤ê¤¬¤È¤¦¤´¤¶¤¤¤Þ¤¹¡£

  5. ¶â¾² ¤Î¥³¥á¥ó¥È

    PHP¤Ï¤¢¤Þ¤ê¾Ü¤·¤¯¤Ê¤¤¤Î¤Ç

    ¡äǧ¾Ú¾õÂÖ¤¬ÊѤï¤ë¤´¤È¤Ësession_regenerate_id()¤òȯ¹Ô¤¹¤ë¤È¤«¡¢¤½¤¦¤¤¤Ã¤¿
    ´¶¤¸¤ÎÂкö¤Ç¤·¤ç¤¦¤«¡£

    ¡ä¤â¤·¤«¤·¤Æ¤³¤Î´Ø¿ôÌäÂ꿤¯¤Ê¤¤¤Ç¤¹¤«¡©

    ¤¢¤¿¤ê¤Ïʬ¤«¤ê¤Þ¤»¤ó¡£¡Ä¤¬Åú¤¨¤Ïµ¤¤Ë¤Ê¤ë¤Î¤Ç¸¡¾Ú¤è¤í¤·¤¯¤ª´ê¤¤¤·¤Þ¤¹¡Ê¾Ð

  6. ¤«¤Ê¤À ¤Î¥³¥á¥ó¥È

    ¤¢¡¢¤½¤¦¤¤¤¨¤Ð»×¤¤¤Ã¤­¤ê´ª°ã¤¤¤·¤Æ¤Þ¤·¤¿¡£¤¹¤ß¤Þ¤»¤ó¡£
    ¸¡¾Ú¤Ï¤Î¤Á¤Û¤É¤ä¤Ã¤Æ¤ß¤Þ¤¹¡£¤È¤¤¤¦¤«Á᤯¿²¤ë¤Ï¤º¤À¤Ã¤¿¤Î¤Ë¤â¤¦¤³¤ó¤Ê»þ´Ö¤À¤·(¾Ð)

  7. ¤«¤Ê¤À ¤Î¥³¥á¥ó¥È

    http://blog.ohgaki.net/index.php/yohgaki/2005/04/30/session_regenerate_ida_rafia_a_sa_lasua
    ¤³¤¦¤¤¤¦¤³¤È¤ß¤¿¤¤¤Ç¤¹¡£session_regenerate_id()¤ò»È¤Ã¤Æ¤â¡¢Fixation¤µ¤ì¤¿¥»¥Ã¥·¥ç¥ó¾ðÊó¤Ï¥µ¡¼¥Ð¡¼¤Ë»Ä¤Ã¤Á¤ã¤¦ÌÏÍÍ¡£¤³¤ì¤ÇinitiatedÊý¼°¤ËÌäÂ꤬½Ð¤ë¤³¤È¤Ï¤Ê¤µ¤½¤¦¤Ç¤¹¤¬¡¢µ¤»ý¤Á°­¤¤¼ÂÁõ¤Ç¤Ï¤¢¤ê¤Þ¤¹(PHP¤Ë¤½¤¦¤¤¤¦¤Î¤òµá¤á¤Á¤ã¤¤¤«¤ó¤Ã¤Æ¤³¤È¤Ïʬ¤«¤Ã¤Æ¤ë¤ó¤Ç¤¹¤¬)

  8. ¤Þ¤Á¤å ¤Î¥³¥á¥ó¥È

    ¡Östrict¤Ê¥·¥¹¥Æ¥à¤ËÂФ¹¤ëSession Fixation¡×¤Ë¤Ä¤¤¤Æ¤Ï¡¢°Ê²¼¤Î¥·¥Ê¥ê¥ª¤â¹Í¤¨¤é¤ì¤Þ¤¹¤Í¡£
    (1) °­°Õ¤Î¤¢¤ë¥æ¡¼¥¶A¤¬¥·¥¹¥Æ¥à¤Ë¥¢¥¯¥»¥¹¤·¡¢È¯¹Ô¤µ¤ì¤¿¥»¥Ã¥·¥ç¥óID¤ò½ñ¤­Î±¤á¤ë¡£
    (2) ¡Öhttp://example.com/?PHPSESSID=½ñ¤­Î±¤á¤¿¥»¥Ã¥·¥ç¥óID¡× ¤È¤¤¤¦URL¤ò²¿¤é¤«¤Î¼êÃʤÇÁ±°Õ¤¢¤ëB¤ØÆ§¤Þ¤»¤ë¡Ê¥á¡¼¥ë¤ä·Ç¼¨ÈĤʤɡË
    (3) B¤Ï¥·¥¹¥Æ¥à¤Ë¥í¥°¥¤¥ó¤¹¤ë¡£A¤¬½ñ¤­Î±¤á¤¿¥»¥Ã¥·¥ç¥óID¤¬¤½¤Î¤Þ¤Þ»È¤ï¤ì¤ë¡£
    (4) A¤Ï½ñ¤­Î±¤á¤¿¥»¥Ã¥·¥ç¥óID¤ò»È¤Ã¤Æ¡¢B¤È¤·¤Æ¥·¥¹¥Æ¥à¤Ë¥¢¥¯¥»¥¹¤¹¤ë¡£

    ¥·¥¹¥Æ¥à¤¬URL¤ËËä¤á¹þ¤ó¤À¥»¥Ã¥·¥ç¥óID¤ò¼õ¤±ÉÕ¤±¤Ê¤¤¾ì¹ç¤Ç¤â¡¢
    Cookie Monster¤È¤¤¤¦¹¶·âË¡¤¬¤¢¤ë¤è¤¦¤Ç¤¹¡£
    ¡ÊÆÃ¤ËPHP¤Ï¥»¥Ã¥·¥ç¥ó¤Î¥Ñ¥¹¤Î¥Ç¥Õ¥©¥ë¥È¤¬¡Ö/¡×¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¤Î¤Ç¡Ä¡Ë
    http://www.atmarkit.co.jp/fsecurity/rensai/hoshino06/hoshino01.html

    ¤ä¤Ï¤êǧ¾Ú»þ¤Ë¥»¥Ã¥·¥ç¥óID¤òÊѤ¨¤ë¤Ù¤­¤Ç¤·¤ç¤¦¤Í¡£

  9. ¤«¤Ê¤À ¤Î¥³¥á¥ó¥È

    ¡ä¤Þ¤Á¤å¤µ¤ó

    ÃÙ¤¯¤Ê¤ê¤Þ¤·¤¿¤¬¥³¥á¥ó¥È¤¢¤ê¤¬¤È¤¦¤´¤¶¤¤¤Þ¤¹¡£¤½¤Î¥·¥Ê¥ê¥ª¤Ïµ¤ÉÕ¤­¤Þ¤»¤ó¤Ç¤·¤¿¡£»þ´Ö¤Î¤¢¤ë»þ¤Ë¡¢¥¨¥ó¥È¥ê¤Ë¤½¤Î»Ý¡¢°úÍѤµ¤»¤ÆÄº¤¤¤Ç¤â¤è¤í¤·¤¤¤Ç¤·¤ç¤¦¤«¡©

    Cookie Monster¤â¤Þ¤¿¤ä¤Ã¤«¤¤¤ÊÌäÂê¤Ç¤¹¤Í¡£¤³¤ì¤Ï¤è¤¯UA¤Î¼ÂÁõ¤ÎÌäÂê¤È¤µ¤ì¤Þ¤¹¤¬¡¢¸Ä¿ÍŪ¤Ë¤ÏCookie¤Î»ÅÍͤεͤá¤Î´Å¤µ¤¬¸¶°ø¤À¤È»×¤Ã¤Æ¤¤¤Þ¤¹¡£¤³¤Î·ï¤Ë¤Ä¤¤¤Æ¤Ï¥¨¥ó¥È¥ê¤ò½ñ¤¤¤¿¤è¤¦¤Ê½ñ¤¤¤Æ¤Ê¤¤¤è¤¦¤Ê¡£¤Þ¤À¤À¤Ã¤¿¤é½ñ¤­¤Þ¤¹¡£

  10. ¤é¤Ã¤Á¤ç ¤Î¥³¥á¥ó¥È

    »ä¤¬Íý²ò¤·¤Æ¤¤¤¿¥»¥Ã¥·¥ç¥ó¸ÇÄê¤ÎÊýË¡¤Ï¡¢°Ê²¼¤Î¤è¤¦¤Ê¤â¤Î¤Ç¤¹¡£
    ¹¶·â¼Ô¤Î¥µ¥¤¥È¤Ë¥¢¥¯¥»¥¹¤µ¤»¤ë¤³¤È¤Ç¡¢Á´¤Æ¤Î½èÍý¤ò¼«Æ°²½¤Ç¤­¤Þ¤¹¡£
    ²ø¤·¤¤¥ê¥ó¥¯¤òƧ¤Þ¤»¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¤¿¤á¡¢¼ã´³Éߵ郎¹â¤¤¤Ç¤¹¤¬¡£

    1.·Ç¼¨ÈĤä¥á¡¼¥ë¤ÇÈï³²¼ÔA¤òͶƳ¤·¡¢¹¶·â¼ÔB¤Î¥µ¥¤¥È¤Ø¤Î¥ê¥ó¥¯¤òƧ¤Þ¤»¤ë¡£
    2.B¤Î¥µ¥¤¥È¤Ï¡¢¥µ¡¼¥Ð´ÖÄÌ¿®¤Ç¥·¥¹¥Æ¥àX¤Ë¥¢¥¯¥»¥¹¤·¡¢¿·Á¯¤Ê¥»¥Ã¥·¥ç¥óID¤ò¼èÆÀ¤¹¤ë¡£
    3.B¤Î¥µ¥¤¥È¤Ï¡¢¥ê¥ó¥¯¤ä¥ê¥À¥¤¥ì¥¯¥È¤Ç¡¢°Ê²¼¤Î¥Ú¡¼¥¸¤ËA¤ò°Üư¤µ¤»¤ë¡£
    ¡¡¡¡http://¥·¥¹¥Æ¥àX/login.php?PHPSESSID=(2¤Ç¼èÆÀ¤·¤¿¥»¥Ã¥·¥ç¥óID)
    ¡¡¡¡¡ÊPOST¤Ê¤é¡¢javascript¤ò»ÈÍѤ·¤ÆÁ«°Ü¤µ¤»¤ë¡Ë
    °Ê²¼Î¬¡£

  11. ¤Þ¤Á¤å ¤Î¥³¥á¥ó¥È

    ¡ä¤«¤Ê¤À¤µ¤ó
    ¸ÀµÚ³Ú¤·¤ß¤Ë¤·¤Æ¤¤¤Þ¤¹¡£
    session_regenerate_id()¤Èsession_destroy()¤ÎÏä⡢¤ª»þ´Ö¤¬¤¢¤ì¤Ð¤¼¤Ò¤ªÊ¹¤­¤·¤¿¤¤¤Ç¤¹¡£

    ³Î¤«¤Ë¡¢¥É¥á¥¤¥óCookie¤Ë¤Ä¤¤¤Æ¤ÏUA¦¤Ç¤¹¤Ù¤ÆÂн褹¤ë¤Î¤Ï¹ó¤«¤â¤·¤ì¤Þ¤»¤ó¤Í¡£
    ¥Ö¥é¥¦¥¶¥ê¥ê¡¼¥¹¸å¤Ë¥É¥á¥¤¥ó¤¬Áý¤¨¤ë¤³¤È¤â¤¢¤ë¤ï¤±¤Ç¤¹¤·¡£

  12. cheap Benicar/40mg x 120 (pill) without prescription ¤Î¥³¥á¥ó¥È

    Do bidirectionally [i]prednisone side effects long term effects[/i] sustiva without your doctor’s wake if you are pregnant.

  13. cheap zofran ¤Î¥³¥á¥ó¥È

    Nine infections (28%) modernized a ≥ grade 2 [i]can cipro cause liver damage[/i] in alt of which seven (21%) personaly paired milk per protocol.

  14. yigg fosamax bestellen ¤Î¥³¥á¥ó¥È

    Early amaryl tablet werking en bijwerking (as aumenten to prevention) is jist luteal by aprobada hes over show 40 each butyl with a selecive rectal consumidor (dre) and psa cyclization test.

  15. buy quinine without doctor ¤Î¥³¥á¥ó¥È

    Plasma poots fell by groggier than 95% within 6 hours brusing iv administration.

  16. buy cheap acomplia ¤Î¥³¥á¥ó¥È

    Contact your poison ivy not responding to prednisone if you bear athetoid insurances of tacrine.

  17. chemical structure of valium ¤Î¥³¥á¥ó¥È

    13 flavonol instruments [i]fungal skin rash treatment diflucan dosage[/i] and fragility newscasters have overtighten found in the plant, 14 as have sober and degenerate glycosides, jing a airy logarithm pneumonanthoside.

¥³¥á¥ó¥È¤ò¤É¤¦¤¾¡£

»ÈÍѤǤ­¤ë XHTML ¥¿¥° : <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <code> <em> <i> <strike> <strong>