¥È¥Ã¥× Äɵ­
²áµî¤ÎÆüµ­

2010-02-22

¡ü¥±¡¼¥¿¥¤twitter(twtr.jp)¤Ë¤ª¤¤¤ÆDNS Rebinding¹¶·â¤ËÂФ¹¤ëÀȼåÀ­¤òȯ¸«¡¦ÄÌÊó¤·¡¢Â¨ºÂ¤Ë½¤Àµ¤µ¤ì¤¿

twitter¤Î¥±¡¼¥¿¥¤ÈÇtwtr.jp¤Ë¤ª¤¤¤Æ¡¢DNS Rebinding¤Ë¤è¤ë¤Ê¤ê¤¹¤Þ¤·¤òµö¤¹ÀȼåÀ­¤¬È¯¸«¤µ¤ì¡¢1/15¤ËÄÌÊó¤·¤¿¤È¤³¤í¡¢¤½¤ÎÆü¤Î¤¦¤Á¤Ë½¤Àµ¤µ¤ì¤¿¡£°Ê²¼¡¢¤½¤Î·Ð°Þ¤Ë¤Ä¤¤¤ÆÊó¹ð¤¹¤ë¡£

·Ð°Þ

º£Ç¯¤Î1·î12Æü¤ËÆÉÇ俷ʹ¤Îµ­»ö¤¬½Ð¤¿¤Î¤ò¼õ¤±¤Æ¡¢¸½¼Â¤Î¥µ¥¤¥È¤Ï¤É¤¦¤Ê¤Î¤À¤í¤¦¤«¤È²þ¤á¤Æµ¤¤Ë¤Ê¤Ã¤¿¡£

¡¡£Î£Ô£Ô¥É¥³¥â¤Î·ÈÂÓÅÅÏäΤ¦¤Á¡¢¥¤¥ó¥¿¡¼¥Í¥Ã¥È±ÜÍ÷¥½¥Õ¥È¡Ö£é¥â¡¼¥É¥Ö¥é¥¦¥¶£²¡¦£°¡×¤òÅëºÜ¤·¤¿ºÇ¿·£²£¹µ¡¼ï¤òÄ̤¸¤Æ¡¢ÍøÍѼԤθĿ;ðÊó¤òÉÔÀµ¼èÆÀ¤µ¤ì¤ë¶²¤ì¤Î¤¢¤ë¤³¤È¤¬¡¢ÀìÌç²È¤Î»ØÅ¦¤ÇÌÀ¤é¤«¤Ë¤Ê¤Ã¤¿¡£

¡¡Æ±¼Ò¤Ï·ÈÂÓ¥µ¥¤¥È¤Î±¿±Ä¼Ô¤Ë¥Ñ¥¹¥ï¡¼¥Éǧ¾Ú¤Ê¤É¤Î°ÂÁ´Âкö¤ò¸Æ¤Ó¤«¤±¤Æ¤¤¤ë¡£·ÈÂÓÅÅÏäε¡Ç½¤¬¹âµ¡Ç½²½¤¹¤ë¤Ë¤Ä¤ì¡¢¤³¤¦¤·¤¿´í¸±¤ÏÁý¤·¤Æ¤ª¤ê¡¢ÍøÍѼԤâÃí°Õ¤¬É¬ÍפˤʤäƤ­¤¿¡£

[¥É¥³¥â·ÈÂÓ¡¢¾ðÊóή½Ð¤Î¶²¤ì¡ÄºÇ¿·£²£¹µ¡¼ï¤è¤ê°úÍÑ]

»ä¼«¿È¤â·ÈÂÓÅÅÏäǤ¤¤¯¤Ä¤«¤Î¥µ¥¤¥È¤ò½ä²ó¤·¤Æ¤ª¤ê¡¢¤½¤Î°ì¤Ä¤Ëtwitter.com¤ÎÆüËܤηÈÂÓÅÅÏøþ¤±¥Õ¥í¥ó¥È¥¨¥ó¥É¤Ç¤¢¤ëtwtr.jp¤â´Þ¤Þ¤ì¤ë¡£¤´Â¸¤¸¤Î¤è¤¦¤Ë¡¢twitter¤ÏÀ¯ÉÜÍ׿ͤäͭ̾¿Í¤â¿ô¿¤¯»È¤Ã¤Æ¤¤¤ë¤·¡¢twitter.com¤Î²èÌ̤dzÎǧ¤¹¤ë¸Â¤ê¡¢È·»³Í³µªÉ×¼óÁê¤ä¸¶¸ý°ìÇîÁí̳Áê¤Ê¤É¤Î³Õν¤ÎÊý¡¹¤Ï·ÈÂÓ¤«¤é½ñ¤­¹þ¤ß¤ò¤µ¤ì¤ë¤³¤È¤â¿¤¤¤è¤¦¤Ê¤Î¤Ç¡¢²¾¤ËÀȼåÀ­¤¬¤¢¤Ã¤¿¾ì¹ç¡¢±Æ¶Á¤âÂ礭¤¯¤Ê¤ë¤È»×¤Ã¤¿¡£¸¶¸ýÁí̳Áê¤Ë´Ø¤·¤Æ¤Ï¡¢µ­¼ÔÃĤ«¤é¤Î¡ÖTwitter¤Î¼ÁÌä¤ò¼õ¤±¤Æ¡¢¤Ä¤Ö¤ä¤­¤ò³Îǧ¤¹¤ë¸¶¸ý»á¡×¤È¤¤¤¦ÊóÆ»¼Ì¿¿¤â¸ø³«¤µ¤ì¤Æ¤¤¤ë¤Î¤Ç¡¢¡Ê¥¹¥¿¥Ã¥ÕǤ¤»¤Ç¤Ï¤Ê¤¯¡Ë¼«¤é·ÈÂÓÅÅÏäò»È¤¤¤³¤Ê¤·¤Ætwtr.jp¤Ë¥¢¥¯¥»¥¹¤·¤Æ¤ª¤é¤ì¤ë¤³¤È¤Ï´Ö°ã¤¤¤Ê¤¤¤À¤í¤¦¡£

¼ê»Ï¤á¤Ëtwtr.jp¤ÎIP¥¢¥É¥ì¥¹¤òÊ̤Υɥᥤ¥ó¤Ë¥»¥Ã¥È¤·¤Æ¡¢·ÈÂÓÅÅÏ䫤饢¥¯¥»¥¹¤¹¤ë¤È¡¢Àµ¾ï¤Ë²èÌ̤¬É½¼¨¤µ¤ì¤ë¡Ê±¦¤Î¼Ì¿¿¡Ë¡£¤³¤ì¤Ï¤Þ¤º¤¤¡£¤³¤Î¤¿¤á¡¢DNS Rebinding¤ò»È¤Ã¤Æ¤Ê¤ê¤¹¤Þ¤·¤¬¤Ç¤­¤Æ¤·¤Þ¤ï¤Ê¤¤¤«Ä´¤Ù¤ë¤³¤È¤Ë¤·¤¿¡£ÅöÁ³¤Ê¤¬¤é¡¢ÉÔÀµ¥¢¥¯¥»¥¹¶Ø»ßË¡¤ËÄñ¿¨¤·¤Ê¤¤¤è¤¦¡¢¼«Ê¬¤Î¥¢¥«¥¦¥ó¥È¤ò»ÈÍѤ·¤Æ³Îǧ¤ò¹Ô¤Ã¤¿¡£

Ä´ºº¤Î³µÍ×

Ä´ºº¤Ë¤¢¤¿¤Ã¤Æ¤Ï¡¢¼«Âð¤ÎÄ´ººÍÑ¥µ¡¼¥Ð¤ÈÄ´ººÀìÍѤΥɥᥤ¥ó¤òÍѤ¤¤¿¡£DNS Rebinding¤ò»È¤Ã¤¿¤«¤ó¤¿¤ó¥í¥°¥¤¥ó¤Î¤Ê¤ê¤¹¤Þ¤·¤Ï¡¢i¥â¡¼¥ÉID¤òÍѤ¤¤¿¡Ö¤«¤ó¤¿¤ó¥í¥°¥¤¥ó¡×¤ÎDNS RebindingÀȼåÀ­¤òȯɽ¤¹¤ëºÝ¤Ë¼Â¸³¤Ç³Îǧ¤·¤Æ¤¤¤¿¤¬¡¢twtr.jp¤Î¥í¥°¥¤¥ó²èÌ̤ϡ¢¼¡¤ÎÅÀ¤Ç»ä¤Î¼Â¸³¤È¤Ï°Û¤Ê¤Ã¤Æ¤¤¤¿¡£

  • ¼Â¸³¤Ç¤ÏGET¥á¥½¥Ã¥É¤À¤Ã¤¿¤¬¡¢twtr.jp¤ÏPOST¤ò»ÈÍÑ
  • twtr.jp¤Ï¥í¥°¥¤¥ó»þ¤Ë¥È¡¼¥¯¥ó¤Î¼õ¤±ÅϤ·¤ò¤·¤Æ¤¤¤¿

ǧ¾Úµ¡Ç½¤ÏÉûºîÍѤòȼ¤¦¤Î¤ÇËÜÍè¤ÏPOST¥á¥½¥Ã¥É¤ò»È¤¦¤Î¤¬Àµ¤·¤¤¤·¡¢¥È¡¼¥¯¥ó¤Ï¡¢³°Éô¤«¤éǧ¾Ú¥ê¥¯¥¨¥¹¥È¤ò¶¯Íפµ¤ì¤ë¹Ô°Ù¡ÊCSRF¤Ë»÷¤Æ¤¤¤ë¤¬¡¢Ç§¾ÚÁ°¤Ê¤Î¤ÇCSRF¤Ç¤Ï¤Ê¤¤¡Ë¤òËɤ°¤¿¤á¤À¤í¤¦¡£¥Ç¥¸¥¿¥ë¥¬¥ì¡¼¥¸¼Ò¤Î¼ÂÁõ¤Ï¥»¥­¥å¥ê¥Æ¥£¾å¤Î¹Í褬¤Ê¤µ¤ì¤Æ¤¤¤ë¤È´¶¤¸¤¿¡£

¤·¤«¤·¡¢DNS Rebinding¤ò»ÈÍѤ¹¤ì¤Ð¡¢¥í¥°¥¤¥ó²èÌ̤Υȡ¼¥¯¥ó¤òÆÉ¤ß½Ð¤¹¤³¤È¤¬²Äǽ¤Ç¤¢¤ë¡£¤¹¤°¤Ë³Îǧºî¶È¤¬½ª¤ï¤ë¤À¤í¤¦¤È»×¤Ã¤Æ¤¤¤¿¤¬¡¢°Õ³°¤Ê¤È¤³¤í¤Ç¼ºÇÔ¤·¤¿¡£¥í¥°¥¤¥ó¡¦¥ê¥¯¥¨¥¹¥È¤ÎPOST¤¬¤¦¤Þ¤¯¤¤¤«¤Ê¤¤¤Î¤À*1¡£Á᤯³Îǧ¤ò½ª¤ï¤é¤»¤Ê¤¤¤È¡¢¤â¤¿¤â¤¿¤·¤Æ¤¤¤ë¤¦¤Á¤ËÀȼåÀ­¤ò°­ÍѤµ¤ì¤ë¤È¤Þ¤º¤¤¡£·ë¶É¡¢XMLHttpRequest¤ò¤¢¤­¤é¤á¡¢IFRAMEÍ×ÁǤòÍѤ¤¤ë¤³¤È¤Ë¤·¤¿¡£

ºÇ½é¡¢IRAMEÍ×ÁǤòDOM¤ÇưŪ¤Ëºî¤Ã¤¿¤ê¤·¤Æ¤¤¤¿¤Î¤À¤¬¡¢IFRAMEÆâ¤ÎFORM¤ò¤¦¤Þ¤¯SUBMIT¤Ç¤­¤Ê¤¤¡£¤³¤Î¤¿¤á¡¢°Ê²¼¤Î¤è¤¦¤Ê¹½À®¤Ë¤·¤¿¡£¸¡¾Ú¥³¡¼¥É¤ò¸ø³«¤¹¤ë¤È¡¢¥¹¥¯¥ê¥×¥È¥­¥Ç¥£¤¬Â¾¤Î¥µ¥¤¥È¤Ç°­ÍѤ¹¤ë¤È¤¤¤±¤Ê¤¤¤Î¤Ç¡¢¥³¡¼¥É¤ÏÈó¸ø³«¤È¤¹¤ë¡£


°ìÈ̥桼¥¶¡ÊÈï³²¼Ô¡Ë¤«¤é¥ê¥¯¥¨¥¹¥È¤¢¤ê
­¡DNS¾ðÊó½ñ¤­´¹¤¨¡¡¢ª¡¡¤³¤ì°Ê¹ß¡¢¥ï¥Ê¥µ¥¤¥È¤Ï twtr.jp¤ÎIP¥¢¥É¥ì¥¹¤ò»Ø¤¹

¡¦°Ê²¼¤ÏIFRAMEÆâ¤Î½èÍý
¡¡­¢¥í¥°¥¤¥ó²èÌ̤òÍ×µá¡Ê¥È¡¼¥¯¥ó¤¬´Þ¤Þ¤ì¤ë¡Ë
¡¡­£¥È¡¼¥¯¥ó¼è¤ê½Ð¤·¡¡¢ª¡¡¥í¥°¥¤¥ó²èÌ̤ÎINPUT¤Ë¥»¥Ã¥È¡Ê¼Ì¿¿2¡Ë
¡¡­¤¥í¥°¥¤¥ó¼Â¹Ô¡¡¢ª ¥»¥Ã¥·¥ç¥óID¤¬Cookie¤Ë¥»¥Ã¥È¤µ¤ì¤ë¡Ê¼Ì¿¿3¡Ë

¡¦°Ê²¼¤ÏIFRAME³°¤Î½èÍý
¡¡­¥Cookie¤òINPUT¤Ë¥»¥Ã¥È
¡¡­¦CookieÃͤò¾ðÊó¼ý½¸¥µ¡¼¥Ð¤ËPOST

°Ê²¼¤Ï¡¢¹¶·â¼Ô¤ÎΩ¾ì
¡¦¥»¥Ã¥·¥ç¥óID¼õ¿®¤ò³Îǧ
¡¦Ê̤ηÈÂÓÅÅÏäËCookie¤ò¥»¥Ã¥È
¡¦twtr.jp¤Ë¥¢¥¯¥»¥¹¡¡¢ª¡¡¤Ê¤ê¤¹¤Þ¤·¤ò³Îǧ
¡¦½ñ¤­¹þ¤ß¤ò¤·¤Æ¤ß¤ë ¢ª À®¸ù¡Ê¼Ì¿¿4¡¢¼Ì¿¿5¡Ë
¼Ì¿¿2
¼Ì¿¿3
¼Ì¿¿4
¼Ì¿¿5

¼Ì¿¿2¤Ï¥È¡¼¥¯¥ó¤ò¼õ¿®¤·¤¿Íͻҡ¢¼Ì¿¿3¤ÏIFRAME¾å¤Ç¥í¥°¥¤¥ó¸å¤ËCookie¾å¤Î¥»¥Ã¥·¥ç¥óID¤òINPUT¤Ë¥»¥Ã¥È¤·¤Æ¤¤¤ëÍͻҤǤ¢¤ë¡£¤³¤Î¥»¥Ã¥·¥ç¥óID¤òÊ̤ÎüËö¤Ë¥»¥Ã¥È¤·¤Æ¡¢½ñ¤­¹þ¤ß¤ò¤·¤Æ¤ß¤¿¤È¤³¤í¤¬¼Ì¿¿4¤Ç¤¢¤ë¡£

ÄÌÊó¡¦ÆÏ½Ð¤ª¤è¤Ó¥Ç¥¸¥¿¥ë¥¬¥ì¡¼¥¸¼Ò¤ÎÂбþ

ÀȼåÀ­¤ò³Îǧ¤·¤¿¤Î¤Ç¡¢twtr.jp¤Î±¿±Ä¸µ¤Ç¤¢¤ë³ô¼°²ñ¼Ò¥Ç¥¸¥¿¥ë¥¬¥ì¡¼¥¸¤ËÄÌÊ󤹤ë¤È¤È¤â¤Ë¡¢IPA¤ÎÀȼåÀ­ÆÏ½ÐÁë¸ý¤ËÆÏ¤±½Ð¤¿¡£¤½¤Î·Ð°Þ¤ò»þ·ÏÎó¤Ç¼¨¤¹¡£

2010/01/14 ¿¼Ìë  ÀȼåÀ­¤Î³Îǧ´°Î»
2010/01/15 11:37 ¥Ç¥¸¥¿¥ë¥¬¥ì¡¼¥¸¼Ò¤Ø¤ÎÄÌÊó
2010/01/15 12:52 IPA¤Ø¤ÎÆÏ½Ð ¼è°·¤¤ÈÖ¹æ IPA#04364080 ¤È¤·¤Æ¼õ¿®¤µ¤ì¤ë
2010/01/15 19:18 IPA¤è¤êÆÏ½Ð¼õÍý¤ª¤è¤Ó¼è¤ê°·¤¤³«»Ï¤ÎÏ¢Íí
2010/01/15 21:51 ¥Ç¥¸¥¿¥ë¥¬¥ì¡¼¥¸¼Ò¤ÎôÅö¼Ô¤è¤ê½¤ÀµºÑ¤ß¤ÎÊÖ¿®¡£¼ê¸µ¤Ç¤â½¤Àµ¤ò³Îǧ¡£
2010/01/19 10:53 IPA¤è¤ê½¤Àµ´°Î»¤ÎÏ¢Íí¡£¤½¤Î¸å¼è¤ê°·¤¤½ªÎ»¤È¤Ê¤ë¡£

²¼¿Þ¤Ë¡¢½¤Àµ¤ò³Îǧ¤·¤¿ÍͻҤò¼Ì¿¿¤Ç¼¨¤¹¡£

ÄÌÃΤ«¤é¤ï¤º¤«10»þ´Ö¤¢¤Þ¤ê¤Ç¤Î½¤Àµ¤Ç¤¢¤ë¡£ ¹âÌÚ¹À¸÷¡÷¼«Âð¤ÎÆüµ­ - ¤Ï¤Æ¤Ê¤Î¤«¤ó¤¿¤ó¥í¥°¥¤¥ó¤¬¥ª¥Ã¥Ô¥í¥²¤À¤Ã¤¿·ï¤Ë¤è¤ë¤È¡¢¤Ï¤Æ¤Ê¤ÏÄÌÃΤ«¤é½¤Àµ´°Î»¤Þ¤Ç20Æü¤â³Ý¤«¤Ã¤¿¤è¤¦¤À¤¬¡Ê½¤ÀµÆâÍÆ¤Ï°Û¤Ê¤ë¤â¤Î¤Î¡Ë³ô¼°²ñ¼Ò¥Ç¥¸¥¿¥ë¥¬¥ì¡¼¥¸¤ÎÂбþ¤ÎÁÇÁᤵ¤ÏºÝ¤À¤Ã¤Æ¤¤¤ë¡£

ÀȼåÀ­¤Î±Æ¶ÁÈϰÏ

Åö³ºÀȼåÀ­¤Î±Æ¶Á¤ò¼õ¤±¤ë¥æ¡¼¥¶¤Ï°Ê²¼¤Î¾ò·ï¤òÁ´¤ÆËþ¤¿¤¹ÍøÍѼԤǤ¢¤ë¡£

  1. twtr.jp¤ò°ìÅ٤Ǥâ»È¤Ã¤¿¤³¤È¤¬¤¢¤ë
  2. i¥â¡¼¥É¥Ö¥é¥¦¥¶2.0¤ÎÂбþµ¡¼ï(2009ǯ²Æ¥â¥Ç¥ë°Ê¹ß)¤ÎÍøÍѼÔ
  3. i¥â¡¼¥ÉID¤òÄÌÃÎÀßÄê¤òON¤Ë¤·¤Æ¤¤¤ë¡Ê¥Ç¥Õ¥©¥ë¥È¤ÏON¡Ë
  4. JavaScript¤ÎÀßÄê¤òÍ­¸ú¤Ë¤·¤Æ¤¤¤ë¡Ê¥Ç¥Õ¥©¥ë¥È¤ÏÍ­¸ú¡Ë

·ÈÂÓÅÅÏäΥ桼¥¶¤Ï¡¢ÂçȾ¤ÎÊý¤¬¥Ç¥Õ¥©¥ë¥ÈÀßÄê¤ÇüËö¤ò»È¤Ã¤Æ¤¤¤ë¤È»×¤ï¤ì¤ë¤Î¤Ç¡¢´Êñ¤Ë¸À¤¨¤Ð¡¢i¥â¡¼¥É¥Ö¥é¥¦¥¶2.0üËö¤Çtwtr.jp¤ò»È¤Ã¤¿¤³¤È¤Î¤¢¤ë¥æ¡¼¥¶¡¢¤È¤¤¤¦¤³¤È¤Ë¤Ê¤ë¡£

Åö³ºÀȼåÀ­¤Î±Æ¶Á¤Ï¡¢¥»¥Ã¥·¥ç¥ó¥Ï¥¤¥¸¥ã¥Ã¥¯¤Ë¤è¤Ã¤Æ¼õ¤±¤ë±Æ¶Á¤ÈÅù¤·¤¤¡£¤¹¤Ê¤ï¤Á¡¢¥ï¥Ê¥µ¥¤¥È¤ò±ÜÍ÷¤·¤Æ¤·¤Þ¤Ã¤¿¥æ¡¼¥¶¤ÎÅö³º¥æ¡¼¥¶¤Ç¤ÎÅê¹Æ¡¢¥À¥¤¥ì¥¯¥È¥á¥Ã¥»¡¼¥¸¤ÎÁ÷¿®¡¢¥À¥¤¥ì¥¯¥È¥á¥Ã¥»¡¼¥¸¤ÎÍúÎò±ÜÍ÷¡¢¼«¸Ê¾Ò²ð¤ä¥×¥í¥Õ¥£¡¼¥ë²èÁü¤ÎÊѹ¹¤Ê¤É¤Ç¤¢¤ë¡£¤Þ¤¿¡¢¡Ö¥á¡¼¥ë¤Ç¥Ä¥¤¡¼¥È¤ÎÀßÄê¡×²èÌ̤«¤éÅê¹ÆÍѥ᡼¥ë¥¢¥É¥ì¥¹¤ò³Îǧ¤·¤Æ¤ª¤±¤Ð¡¢¸å¤«¤é¤¤¤Ä¤Ç¤âÅö³º¥¢¥«¥¦¥ó¥È¤Ç¤Î¤Ä¤Ö¤ä¤­¤¬¹Ô¤¨¤ë¡£¸Ä¿Í¾ðÊó¤Ë´Ø¤·¤Æ¤Ï¡¢¥á¡¼¥ë¥¢¥É¥ì¥¹¤â´Þ¤á¤Æ±ÜÍ÷¤Ç¤­¤ëÆâÍÆ¤Ï¤¢¤Þ¤ê¤Ê¤¤¤è¤¦¤À¡£

Àè¤Ëtwtr.jp¤Î¥æ¡¼¥¶¤ÎÎã¤È¤·¤Æµó¤²¤¿È·»³¼óÁê¤ä¸¶¸ýÁí̳Á꤬²¾¤Ë¥ï¥Ê¥µ¥¤¥È¤ò±ÜÍ÷¤µ¤»¤é¤ì¤¿¾ì¹ç¤Ï¡¢¼óÁê¤äÁí̳Áê¤Î¥¢¥«¥¦¥ó¥È¤Ç¡¢¹¶·â¼Ô¤ÏǤ°Õ¤Î¤Ä¤Ö¤ä¤­¤¬¹Ô¤¨¤¿¤³¤È¤Ë¤Ê¤ë¡£

Êݸ±ÅªÂбþ

twtr.jp¤ÎÀȼåÀ­¤ò°­ÍѤµ¤ì¤¿½ñ¤­¹þ¤ß¤Ê¤É¤Ï¡¢»ä¤ÎÃΤë¸Â¤ê¤Ï¸øÉ½¤µ¤ì¤Æ¤¤¤Ê¤¤¤è¤¦¤À¤¬¡¢ÀȼåÀ­¤¬½¤Àµ¤µ¤ì¤¿º£¤Ç¤âÌýÃǤϤǤ­¤Ê¤¤¡£²¾¤Ë¡¢¹¶·â¼Ô¤¬¤Ê¤ê¤¹¤Þ¤·¤òÀ®¸ù¤µ¤»¤Æ¤¤¤¿¾ì¹ç¡¢¸å¤«¤é½ñ¤­¹þ¤ß¤ò¤¹¤ë¼êÃʤ¬¤¢¤ë¤«¤é¤À¡£¤½¤ì¤ÏÁ°½Ò¤Î¡Ö¥á¡¼¥ë¤Ç¥Ä¥¤¡¼¥È¡×µ¡Ç½¤òÍøÍѤ¹¤ëÊýË¡¤À¡£¤³¤ì¤Ï¡¢¤½¤Î̾¤ÎÄ̤ê¥á¡¼¥ë·Ðͳ¤Çtwitter¤ÎÅê¹Æ¤ò¤¹¤ë¤â¤Î¤Ç¡¢¥æ¡¼¥¶Ëè¤ÎÀìÍѥ᡼¥ë¥¢¥É¥ì¥¹¤Ëʸ¾Ï¤òÁ÷¿®¤¹¤ë¤È¡¢¤½¤ÎÆâÍÆ¤¬twitter¤ËÅê¹Æ¤µ¤ì¤ë¡£±¦¤Î¼Ì¿¿¤Ï¡¢»ä¤Î¡ÖÀìÍѤÎÅê¹ÆÀè¥á¡¼¥ë¥¢¥É¥ì¥¹¡×¤òɽ¼¨¤µ¤»¤¿¤â¤Î¤Ç¤¢¤ë¡£¤³¤Î¥á¡¼¥ë¥¢¥É¥ì¥¹¤Ï¤¤¤Ä¤Ç¤âÊѹ¹¤Ç¤­¤ë¤Î¤Ç¡¢twtr.jp¥æ¡¼¥¶¤Ïǰ¤Î¤¿¤áÊѹ¹¤·¤Æ¤ª¤¤¤¿Êý¤¬Îɤ¤¤À¤í¤¦¡£

¤Þ¤¿¡¢twtr.jp¤Ï¤«¤ó¤¿¤ó¥í¥°¥¤¥ó¤ò¶Ø»ßÀßÄꤹ¤ë¤³¤È¤¬¤Ç¤­¤Ê¤¤¡£¥á¥Ë¥å¡¼¾å¤Ï¡Ö³Æ¼ïÀßÄê¡×¤«¤é¡Ö¤«¤ó¤¿¤ó¥í¥°¥¤¥ó¤Î̵¸ú²½¡×¤È¤¤¤¦¥á¥Ë¥å¡¼¤¬¤¢¤ë¤¬¡¢»î¤·¤Æ¤ß¤¿¤È¤³¤í¡¢¤«¤ó¤¿¤ó¥í¥°¥¤¥ó¤ÎÀßÄêÆâÍÆ¤òºï½ü¤¹¤ë¤À¤±¤Ç¡¢¤½¤Î¸å¥Ñ¥¹¥ï¡¼¥Éǧ¾Ú¤Ç¥í¥°¥¤¥ó¤¹¤ë¤È¡¢ºÆ¤Ó¤«¤ó¤¿¤ó¥í¥°¥¤¥ó¤¬Í­¸ú¤È¤Ê¤ë¡£¤³¤Î¤¿¤á¡¢¥æ¡¼¥¶¤¬twtr.jp¾å¤Ç¤«¤ó¤¿¤ó¥í¥°¥¤¥óÀßÄê¤ò»Ä¤·¤¿¤¯¤Ê¤¤¾ì¹ç¤Ï¡¢twtr.jp¤Ë¥¢¥¯¥»¥¹¤¹¤ë¤¿¤Ó¤Ë¡Ö¤«¤ó¤¿¤ó¥í¥°¥¤¥ó¤Î̵¸ú²½¡×¤ò¼Â¹Ô¤¹¤ë¡Ê¸½¼ÂŪ¤Ç¤Ï¤Ê¤¤¡Ë¤«¡¢i¥â¡¼¥ÉID¤ò̵¸ú²½¤¹¤ë¤·¤«¤Ê¤¤¤À¤í¤¦¡£i¥â¡¼¥ÉID¤Ï¡¢i¥â¡¼¥É¤Î¥Þ¥¤¥á¥Ë¥å¡¼¤«¤é̵¸ú²½¤Ç¤­¤ë¡£

ÍøÍѼԤ¬DNS Rebinding¹¶·â¤òÈò¤±¤ëÌÜŪ¤Ç¤Ï¡¢JavaScript¤Î̵¸ú²½¤¬¸½¼ÂŪ¤«¤ÄÍ­¸ú¤ÊÊýË¡¤À¤È¹Í¤¨¤ë¡£


¤«¤ó¤¿¤ó¥í¥°¥¤¥ó¼êË¡¤ÎÀȼåÀ­¤ËÂФ¹¤ëÀÕǤ¤Ïï¤Ë¤¢¤ë¤Î¤«¡ÊºÆ¡Ë

¥Ç¥¸¥¿¥ë¥¬¥ì¡¼¥¸¼Ò¤¬¤«¤ó¤¿¤ó¥í¥°¥¤¥ó¤ÎDNS RebindingÌäÂê¤òÂкö¤·¤Æ¤¤¤Ê¤«¤Ã¤¿Íýͳ¤Ï²¿¤À¤í¤¦¤«¡£¤ª¤½¤é¤¯¡¢Ã±½ã¤Ë¤³¤ÎÌäÂê¤òÃΤé¤Ê¤«¤Ã¤¿¤Î¤À¤í¤¦¡£ÌµÍý¤â¤Ê¤¤¡£»ä¤¬ºòǯ11·î¤Ë¸øÉ½¤·¤Æ¤¤¤¿¤È¤Ï¤¤¤¨¡¢¾®¤µ¤Ê¥»¥­¥å¥ê¥Æ¥£²ñ¼Ò¤¬¸øÉ½¤·¤¿ÆâÍÆ¤Þ¤Ç´Þ¤á¤Æ¡¢¥»¥­¥å¥ê¥Æ¥£¾ðÊó¤ò¤¹¤Ù¤Æ½¦¤¤¾å¤²¤Æ¸¡¾Ú¡¦Âбþ¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¤È¤¹¤ë¤Î¤â¹ó¤ÊÏäÀ¤È»×¤¦¡£¤·¤«¤â¡¢ÀȼåÀ­¤òÄÌÃΤ·¤¿¤é¤½¤ÎÆü¤Î¤¦¤Á¤ËÂкö¤¹¤ëǽÎϤ¬¥Ç¥¸¥¿¥ë¥¬¥ì¡¼¥¸¼Ò¤Ë¤¢¤Ã¤¿¤Î¤À¡£IPA¤ÎÆÏ½ÐÀ©Å٤ϡ¢¸ÄÊ̤Υ¢¥×¥ê¥±¡¼¥·¥ç¥ó¤äWeb¥µ¥¤¥È¤ÎÀȼåÀ­¤ò°·¤¦¤â¤Î¤Ç¡¢¤«¤ó¤¿¤ó¥í¥°¥¤¥ó¤Î¤è¤¦¤Ê¡Öǧ¾Ú¼êË¡¡×¤Ï¼è¤ê°·¤¤Âоݳ°¤À*2¡£¤³¤Î¤¢¤¿¤ê¡¢ÌäÂê¤ò¼þÃΤǤ­¤Ê¤¤¼«Ê¬¼«¿È¤ÎÎϤΤʤµ¤òÄË´¶¤¹¤ë¤È¤È¤â¤Ë¡¢¤ä¤Ï¤ê·ÈÂÓÅÅÏûö¶È¼Ô¤Ë¡Ø¤É¤¦¤ä¤Ã¤¿¤é¡Ö¤«¤ó¤¿¤ó¥í¥°¥¤¥ó¡×¤Ê¤ë¤â¤Î¤¬¼Â¸½¤Ç¤­¤ë¤Î¤«¡¢¤Á¤ã¤ó¤È¤·¤¿¼ÂÁõÊýË¡¤Î¸ø¼°²òÀâ¤ò½Ð¡Ù¤·¤Æ¤â¤é¤ï¤Ê¤¤¤È¡¢¤³¤Î¼ï¤ÎÌäÂê¤Ï¤Ê¤¯¤Ê¤é¤Ê¤¤¤À¤í¤¦¤È²þ¤á¤Æ´¶¤¸¤¿¡£

*1 ¤³¤ì¤Ï¡¢¸å¤Ëi¥â¡¼¥É¥Ö¥é¥¦¥¶2.0¤ÎÀ©¸Â¤Î¤¿¤á¤À¤Èʬ¤«¤Ã¤¿¡£¤³¤Á¤é¤ò»²¾È¤µ¤ì¤¿¤·

*2 ¤À¤«¤étwtr.jp¤È¤¤¤¦¸ÄÊÌ¥µ¥¤¥È¤ÎÀȼåÀ­¤ÏÆÏ¤±½Ð¤¿


2010-02-12

¡ü¤«¤ó¤¿¤ó¥í¥°¥¤¥ó¼êË¡¤ÎÀȼåÀ­¤ËÂФ¹¤ëÀÕǤ¤Ïï¤Ë¤¢¤ë¤Î¤«

id:ikepyon¤ÎÆüµ­·Ðͳ¤Ç¡¢NTT¥É¥³¥â¤Î¥µ¥¤¥È¤Ë°Ê²¼¤Î¥»¥­¥å¥ê¥Æ¥£¡¦¥¬¥¤¥É¥é¥¤¥ó¤¬·Ç¼¨¤µ¤ì¤Æ¤¤¤ë¤³¤È¤òÃΤä¿¡£

i¥â¡¼¥É¥Ö¥é¥¦¥¶µ¡Ç½¤Î¿ÍͲ½¤Ë¤è¤ê¡¢µ¡¼ï¤Ë¤è¤Ã¤Æi¥â¡¼¥É¥µ¥¤¥È¤Ë¤ª¤¤¤Æ¤âJavaScript¤òÁȤ߹þ¤ó¤À¿ÍͤÊɽ¸½¡¢Cookie¤äReferer¾ðÊó¤òÍ­¸ú¤Ë³èÍѤ·¤¿¥µ¥¤¥È¹½ÃÛ¤¬¹Ô¤¨¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤·¤¿¡£

¤·¤«¤·¡¢PC¸þ¤±¥¤¥ó¥¿¡¼¥Í¥Ã¥È¥µ¥¤¥ÈƱÍͤˡ¢¥»¥­¥å¥ê¥Æ¥£Âкö¤¬½½Ê¬¤Ë¹Ô¤ï¤ì¤Æ¤¤¤Ê¤¤¥µ¥¤¥È¤Ç¤Ï¡¢¤½¤Î¥µ¡¼¥Ð¤ÎÀȼåÀ­¤òÆÍ¤­¡Ê¥¯¥í¥¹¥µ¥¤¥È¥¹¥¯¥ê¥×¥Æ¥£¥ó¥°¡¢SQL¥¤¥ó¥¸¥§¥¯¥·¥ç¥ó¡¢DNS¥ê¥Ð¥¤¥ó¥Ç¥£¥ó¥°¤Ê¤ÉÍÍ¡¹¤Ê¹¶·â¼êË¡¤¬Â¸ºß¤·¤Æ¤¤¤Þ¤¹¡Ë¡¢¤³¤ì¤é¤Îµ¡Ç½¤¬°­ÍѤµ¤ì¤ë´í¸±À­¤¬¤¢¤ê¤Þ¤¹¡£½½Ê¬¤Ë¤´Ãí°Õ¤¯¤À¤µ¤¤¡£

[ºî¤í¤¦i¥â¡¼¥É¡§i¥â¡¼¥É¥Ö¥é¥¦¥¶ | ¥µ¡¼¥Ó¥¹¡¦µ¡Ç½ | NTT¥É¥³¥â¤è¤ê°úÍÑ]

XSS¤äSQL¥¤¥ó¥¸¥§¥¯¥·¥ç¥ó¤Èʤó¤Ç¡¢DNS¥ê¥Ð¥¤¥ó¥Ç¥£¥ó¥°¤È¤¤¤¦¥Þ¥Ë¥¢¥Ã¥¯¤Ê¼êË¡¤¬¾Ò²ð¤µ¤ì¤Æ¤¤¤ë¤³¤È¤Ï¶Ã¤­¤À¤¬¡¢¤ª¤½¤é¤¯»ä¤¬ºòǯȯɽ¤·¤¿i¥â¡¼¥ÉID¤òÍѤ¤¤¿¡Ö¤«¤ó¤¿¤ó¥í¥°¥¤¥ó¡×¤ÎDNS RebindingÀȼåÀ­¤Î¤³¤È¤ò»Ø¤·¤Æ¤¤¤ë¤Î¤Ç¤¢¤í¤¦¡£

¤·¤«¤·¡¢°úÍÑÉô¤Îɽ¸½¤Ë¤Ï°ãÏ´¶¤¬¤¢¤ë¡£DNS¥ê¥Ð¥¤¥ó¥Ç¥£¥ó¥°¼«ÂΤϴûÃΤι¶·â¼êË¡¤Ç¤¢¤ë¤¬¡¢¡ÖPC¸þ¤±¥¤¥ó¥¿¡¼¥Í¥Ã¥È¥µ¥¤¥È¡×¤ËÂФ¹¤ë¹¶·â¤Ç¤Ï¤Ê¤¯¡¢¥¤¥ó¥¿¡¼¥Í¥Ã¥È¥µ¥¤¥È¤ò±ÜÍ÷¤·¤Æ¤¤¤ëPC¼«¿È¤ä¥Õ¥¡¥¤¥¢¥¦¥©¡¼¥ë¤ÎÆâ¦¤Î¥í¡¼¥«¥ë¥Í¥Ã¥È¥ï¡¼¥¯¾å¤ÎüËö¤ËÂФ¹¤ë¹¶·â¼êË¡¤È¤·¤ÆÃΤé¤ì¤Æ¤¤¤ë¡£¤³¤Î¤¢¤¿¤ê¤Î²òÀâ¤Ë¤Ä¤¤¤Æ¤Ï¡¢¤³¤³¤ä¤³¤³¤ò»²¾È夭¤¿¤¤¡£

¤·¤«¤â¡¢Àè¤Î¥»¥­¥å¥ê¥Æ¥£¡¦¥¬¥¤¥É¥é¥¤¥ó¤Ë¤Ï¡¢¤³¤ì¤éÀȼåÀ­¤Ë¤Ä¤¤¤Æ¤ÎÀâÌÀ¤Ï¤Ê¤¯¡¢¡Ö½½Ê¬¤Ë¤´Ãí°Õ¤¯¤À¤µ¤¤¡×¤È¤¢¤ë¤À¤±¤Ç¡¢»²¹Í¾ðÊó¤È¤·¤Æ¤ÏIPA¤Î¥È¥Ã¥×¥Ú¡¼¥¸¤¬¾Ò²ð¤µ¤ì¤Æ¤¤¤ë¡£

¤Ê¤ª¡¢¥»¥­¥å¥ê¥Æ¥£Âкö¾ðÊó¤Ë¤Ä¤¤¤Æ¤Ï¡¢¡ÖÆÈΩ¹ÔÀ¯Ë¡¿Í ¾ðÊó½èÍý¿ä¿Êµ¡¹½¡×¡ÊIPA¡Ë¤¬¸ø³«¤¹¤ë¾ðÊó¤Ê¤É¤â»²¹Í¤Ë¤·¤Æ¤¯¤À¤µ¤¤¡£

ÆÈΩ¹ÔÀ¯Ë¡¿Í ¾ðÊó½èÍý¿ä¿Êµ¡¹½¡ÊIPA¡Ë¤Î¥¦¥§¥Ö¥µ¥¤¥È¤Ø

[ºî¤í¤¦i¥â¡¼¥É¡§i¥â¡¼¥É¥Ö¥é¥¦¥¶ | ¥µ¡¼¥Ó¥¹¡¦µ¡Ç½ | NTT¥É¥³¥â¤è¤ê°úÍÑ]

IPA¤ËDNS¥ê¥Ð¥¤¥ó¥Ç¥£¥ó¥°¤Î²òÀ⤬¤¢¤Ã¤¿¤«¤Ê¤Èµ¿Ìä¤Ë»×¤¤¡¢¡ÖDNS "¥ê¥Ð¥¤¥ó¥Ç¥£¥ó¥°" site:ipa.go.jp¡×¤ä¡ÖDNS rebinding site:ipa.go.jp¡×¤Ê¤É¤Î¥­¡¼¥ï¡¼¥É¤Ç¸¡º÷¤·¤Æ¤ß¤¿¤¬¡¢¥Ò¥Ã¥È¤·¤Ê¤¤¡£¤Ò¤ç¤Ã¤È¤·¤¿¤é¤É¤³¤«¤Ë¸ºß¤¹¤ë²ÄǽÀ­¤Ï¤¢¤ë¤¬¡¢¥ê¥ó¥¯¤â¤Ê¤¯¡¢¥µ¡¼¥Á¤Ç¤â°ú¤Ã¤«¤«¤é¤Ê¤¤¤Î¤Ç¤Ï¡¢¤Ê¤¤¤Î¤ÈƱ¤¸¤À¡£¤³¤ì¤Ç¤Ï¡¢Ã±¤Ë´í¸±¤¬¤¢¤ë¤«¤éÃí°Õ¤·¤í¤È¸À¤Ã¤Æ¤¤¤ë¤À¤±¤Ç¡¢²ò·èºö¤ò¼¨¤·¤Æ¤¤¤Ê¤¤¤³¤È¤Ë¤Ê¤ë¡£

¤³¤Î¤è¤¦¤Ê¾õ¶·¤«¤é¡¢¤³¤Îʸ½ñ¤Ï¼¡¤Î¤è¤¦¤Ê°Õ¿Þ¤ò¤â¤Ã¤Æ½ñ¤«¤ì¤¿¤Î¤Ç¤Ï¤Ê¤¤¤«¤È¤¤¤¦´¶ÁÛ¤ò»ý¤Ã¤¿¡£

  • ƱDNS¥ê¥Ð¥¤¥ó¥Ç¥£¥ó¥°¤ÎÌäÂê¤Ï¡¢·ÈÂÓüËö¤ä»ö¶È¼ÔÀßÈ÷¤ÎÌäÂê¤Ç¤Ï¤Ê¤¯¡¢Web¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¦¤ÎÌäÂê¤Ç¤¢¤ë¡Ê»ä¤âƱ°ÕÄɵ­»²¾È¡Ë
  • NTT¥É¥³¥â¤Ï¡¢¤«¤ó¤¿¤ó¥í¥°¥¤¥ó¤ÎDNS¥ê¥Ð¥¤¥ó¥Ç¥£¥ó¥°ÀȼåÀ­¤ò¡¢PC¤â´Þ¤áÀΤ«¤é¸ºß¤·¤Æ¤¤¤¿ÌäÂê¤È°õ¾Ý¤Å¤±¤¿¤¤¤Î¤Ç¤Ï¤Ê¤¤¤«¡Ê¼ÂºÝ¤Ï°ã¤¦¡Ë
  • DNS¥ê¥Ð¥¤¥ó¥Ç¥£¥ó¥°¤Î²ò·èÊýË¡¤òÌÀ³Î¤Ë¥ê¥ó¥¯¤·¤Ê¤«¤Ã¤¿¤Î¤Ï¡¢¡ÖNTT¥É¥³¥â¸øÇ§¤Î²ò·èºö¡×¤È¤¤¤¦°õ¾Ý¤òÍ¿¤¨¤ë¤³¤È¤òÈò¤±¤¿¤«¤Ã¤¿¤«¤é¤Ç¤Ï¤Ê¤¤¤«
  • °ìÊý¤Ç¡¢DNS¥ê¥Ð¥¤¥ó¥Ç¥£¥ó¥°¤ËÂФ¹¤ëÃí°Õ´­µ¯¤ò¹Ô¤Ã¤¿¤È¤¤¤¦¼ÂÀӤϺî¤ê¤¿¤¤¤Î¤Ç¤Ï¤Ê¤¤¤«

¡Ö¼ÂÀÓºî¤ê¡×¤Ç»×¤¤É⤫¤Ö¤Î¤Ï¡¢Yomiuri Online¤Ë¤â·ÇºÜ¤µ¤ì¤¿°Ê²¼¤Îµ­»ö¤À¡£¤³¤Îµ­»ö¤Ï¡¢¤«¤ó¤¿¤ó¥í¥°¥¤¥ó¤ÎDNS¥ê¥Ð¥¤¥ó¥Ç¥£¥ó¥°ÀȼåÀ­¤Ë´Ø¤·¤Æ¡¢NTT¥É¥³¥â¤Î¥³¥á¥ó¥È¤ò·ÇºÜ¤·¤Æ¤¤¤ë¡£

¡¡£Î£Ô£Ô¥É¥³¥â¤Ç¤Ï¡¢¸ø¼°¥µ¥¤¥È¤ò±¿±Ä¤¹¤ëÌó£³£°£°£°¼Ò¤Ë¤ÏÃí°Õ´­µ¯¤·¤¿¤¬¡¢¤½¤ì°Ê³°¤Î̵¿ô¤Ë¤¢¤ë¡Ö¾¡¼ê¥µ¥¤¥È¡×¤Ë¤Ï¡Ö¥¸¥ã¥Ð¥¹¥¯¥ê¥×¥È¤Î°ÂÁ´¤ÊÍøÍѤϥµ¥¤¥È¤òºî¤ë¦¤Ë¤È¤Ã¤Æ´ðËÜŪÃμ±¤Ç¤¢¤ê¡¢¶ñÂÎŪ¤ËÀâÌÀ¤Ï¤·¤Æ¤¤¤Ê¤¤¡×¤È¤¤¤¦¡£

[¥É¥³¥â·ÈÂÓ¡¢¾ðÊóή½Ð¤Î¶²¤ì¡ÄºÇ¿·£²£¹µ¡¼ï¤è¤ê°úÍÑ]

¾¡¼ê¥µ¥¤¥È¤ËÂФ·¤Æ½¾ÍèÀâÌÀ¤·¤Æ¤¤¤Ê¤«¤Ã¤¿¤Î¤Ç¡¢¿·¤¿¤ËÀâÌÀ¤·¤¿¤È¤¤¤¦¤³¤È¤Ê¤Î¤«¤â¤·¤ì¤Ê¤¤¡£¤·¤«¤·¡¢Àè¤ÎÀâÌÀ¤Ç¤Ï¤Þ¤Ã¤¿¤¯ÉÔ½½Ê¬¤À

NTT¥É¥³¥â¡Ê¤ª¤è¤Ó¾¤Î·ÈÂÓÅÅÏûö¶È¼Ô¡Ë¤Ï¡¢¤«¤ó¤¿¤ó¥í¥°¥¤¥ó¤Î¥»¥­¥å¥ê¥Æ¥£ÌäÂê¤Ë¤Ä¤¤¤Æ¡¢¤½¤í¤½¤íÂÖÅÙ¤òÌÀ³Î¤Ë¤¹¤ëɬÍפ¬¤¢¤ë¤Î¤Ç¤Ï¤Ê¤¤¤À¤í¤¦¤«¡£¤½¤ÎÂÖÅ٤Ȥϡ¢°Ê²¼¤ÎÁªÂò»è¤Î¤É¤ì¤òÁª¤Ö¤Î¤«¤È¤¤¤¦¤³¤È¤À¡£

  • ¤«¤ó¤¿¤ó¥í¥°¥¤¥ó¤È¤¤¤¦¼êË¡¤Ï³Æ¥µ¥¤¥È¤¬ÆÈ¼«¤Ë¼ÂÁõ¤·¤Æ¤¤¤ë¤â¤Î¤Ç¡¢·ÈÂÓÅÅÏûö¶È¼Ô¤Ï¥¬¥¤¥É¥é¥¤¥ó¤Ê¤É¤âÄ󼨤·¤Æ¤¤¤Ê¤¤¤Î¤ÇÀÕǤ¤Ï°ìÀÚÉé¤ï¤Ê¤¤
  • ¤«¤ó¤¿¤ó¥í¥°¥¤¥ó¤Ï¡¢·ÈÂÓÅÅÏûö¶È¼Ô¤¬Ä󶡤·¤Æ¤¤¤ëüËö¸ÇÍ­ID¤Î±þÍѤǤ¢¤ë¤Î¤Ç¡¢°ÂÁ´¤Ê»È¤¤Êý¤ò¼¨¤¹¤Ê¤É·ÈÂÓÅÅÏûö¶È¼Ô¤È¤·¤Æ¤â°ìÄê¤ÎÀÕǤ¤¬À¸¤¸¤ë

¤¯¤À¤ó¤Î¡Ö¥»¥­¥å¥ê¥Æ¥£¡¦¥¬¥¤¥É¥é¥¤¥ó¡×¤òÆÉ¤à¸Â¤ê¡¢NTT¥É¥³¥â¤Ï¡ÊËܲ»¤Ç¤Ï¡Ë»ö¶È¼Ô¤È¤·¤Æ°ìÀÚÀÕǤ¤òÉé¤ï¤Ê¤¤¤È»ÑÀª¤Ê¤Î¤À¤ÈÁÛÁü¤¹¤ë¡£¤·¤«¤·¡¢¤½¤¦ÌÀ¸À¤¹¤ë¤Èȿȯ¤âͽÁÛ¤µ¤ì¤ë¤³¤È¤«¤é¡¢¤¢¤¤¤Þ¤¤¤ÊÂÖÅÙ¤ò¤È¤Ã¤Æ¤¤¤ë¤è¤¦¤Ë¸«¤¦¤±¤é¤ì¤ë¡£

¤·¤«¤·¡¢¤³¤Î¤è¤¦¤Ê¤¢¤¤¤Þ¤¤¤Ê¾õ¶·¤¬¤â¤Ã¤È¤â´í¸±¤Ê¤Î¤À¡£¤«¤ó¤¿¤ó¥í¥°¥¤¥ó¤¬¤³¤ì¤À¤±ÉáµÚ¤·¤¿¸½ºß¤Ç¤â¡¢¤³¤Î¼êË¡¤ËÂФ¹¤ëÀÕǤ¤¬¤É¤³¤Ë¤¢¤ë¤Î¤«¡¢Èó¾ï¤ËÉÔÌÀ³Î¤Ê¾õÂÖ¤¬Â³¤¤¤Æ¤¤¤ë¡£ºÇ½ªÅª¤Ë¤Ï¡¢Web¥µ¥¤¥È¤Î±¿±Ä¼Ô¤¬ÀÕǤ¤òÉ餦¤Ù¤­ÌäÂê¤Ç¤Ï¤¢¤ë¤À¤í¤¦¤¬¡¢Ãæ¾®ÎíºÙ´ë¶È¤¬Â¿¤¤¥±¡¼¥¿¥¤¥µ¥¤¥È¤Î±¿±Ä¼Ô¤¬¤½¤Î¤è¤¦¤ÊÌäÂê°Õ¼±¤ò»ý¤Ã¤Æ¤¤¤ë¤È¤Ï¹Í¤¨¤Ë¤¯¤¤¤·¡¢DNS¥ê¥Ð¥¤¥ó¥Ç¥£¥ó¥°¤ò´Þ¤àÊ£»¨¤Ê¥»¥­¥å¥ê¥Æ¥£ÌäÂê¤òÆÈ¼«¤Ë¸¦µæ¡¦²ò·è¤¹¤ëǽÎϤâ¤Ê¤¤¤À¤í¤¦¡£¤Ç¤¢¤ì¤Ð¡¢ÆüËÜÆÈ¼«¤Î¿Ê²½¤ò¿ë¤²¤¿·ÈÂÓÅÅÏÃ¥³¥ó¥Æ¥ó¥Ä¤Î¥»¥­¥å¥ê¥Æ¥£ÌäÂê¤ËÂФ·¤Æ¡¢¤â¤Ã¤È¹­¤¤ÏÈÁȤߤǤθ¡Æ¤¤¬¹Ô¤ï¤ì¤ëɬÍפ¬¤¢¤ë¤·¡¢¤½¤³¤Ë¤â¤Ã¤È¤â¶á¤¤°ÌÃ֤ˤ¤¤ë¤Î¤¬·ÈÂÓÅÅÏûö¶È¼Ô¤Ç¤¢¤ë¤È»ä¤Ï¹Í¤¨¤ë¡£

Äɵ­(2010/2/16)

³ç¸ÌÆâ¤Ç¡Ö»ä¤âƱ°Õ¡×¤È½ñ¤¤¤¿Éôʬ¤Ë¤Ä¤¤¤Æ»ØÅ¦¤òĺÂפ·¤Þ¤·¤¿¡£

¤³¤³¤ÏƱ°Õ¤·¤Á¤ã¤À¤á¡£Web¥¢¥×¥ê¦¤Ï¡ÖÂкö²Äǽ¡×¤Ê¤Î¤Ç¤¢¤Ã¤Æ¡¢¸µ¤«¤é¤½¤³¤ËÌäÂ꤬¤¢¤ë¤ï¤±¤¸¤ã¤Ê¤¤¡£

[HiromitsuTakagi¤Î¥Ö¥Ã¥¯¥Þ¡¼¥¯ / 2010ǯ2·î15Æü (3)¤è¤ê°úÍÑ]

¾¯¤Ê¤¯¤È¤âWeb¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¦¤Î¡ÖÉÔ¶ñ¹ç¡×¤Ç¤Ï¤Ê¤¤¤è¤¦¤Ë»×¤¤¤Þ¤¹¤·¡¢¼ÂºÝ¤Î¤È¤³¤í¤Ï¤³¤ó¤Ê´¶¤¸¤Ç¤Ï¤Ê¤¤¤Ç¤·¤ç¤¦¤«¡£

  • i¥â¡¼¥É¥Ö¥é¥¦¥¶2.0Âбþ¤ÎdocomoüËö¤Ï¡¢DNS Rebinding¤Î¹¶·â¤ËÂФ·¤ÆÀȼå¤Ç¤¢¤ë¡£

  • üËö¤ÎÌäÂê¤Ç¤¢¤ë¤¿¤áüËö¦¤ÇÂбþ¤¹¤ë¤³¤È¤¬Ë¾¤Þ¤·¤¤¤¬¡¢Ì¾Á°²ò·è¤Ïdocomo¤Î¥²¡¼¥È¥¦¥§¥¤Â¦¤Ç¹Ô¤ï¤ì¤ë¾ì¹ç¤¬¤¢¤ê¡¢Ã¼Ëö¦¤Ç¤ÏÂбþ¤¬Æñ¤·¤¤¡£

  • docomo¤Î¥²¡¼¥È¥¦¥§¥¤¤ÎÌäÂê¤Ë¤Ä¤¤¤Æ¤Ïdocomo¦¤ÇÂбþ¤¹¤ë¤³¤È¤¬Ë¾¤Þ¤·¤¤¤¬¡¢ÌäÂê¤ÎÀ­¼Á¾å¡¢Âбþ¤¬Æñ¤·¤¤ (»²¹Í: Re:¡Ödocomo¥±¡¼¥¿¥¤¤ÎDNS RebindingÌäÂê¡¢Á´¹ñ»æ¤ÇÊ󯻡×)¡£

  • ¤³¤ì¤é¤ÎÌäÂê¤ËÂФ·¤Æ¤ÏWeb¥µ¥¤¥È¦¤ÇÂбþ¤¹¤ë¤³¤È¤¬²Äǽ¤Ç¤¢¤ê¡¢¤·¤«¤â´Êñ¤ËÂбþ¤Ç¤­¤ëÊýË¡¤¬Â¸ºß¤¹¤ë¡£

  • ½¾¤Ã¤Æ¡¢Web¥µ¥¤¥È¦¤Ç¤ÎÂбþ¤¬¿ä¾©¤µ¤ì¤ë¡£

[DNS RebindingÌäÂê¤Î½êºß | ¿å̵·î¤Ð¤±¤é¤Î¤¨¤ÓÆüµ­¤è¤ê°úÍÑ]

¤Þ¤³¤È¤Ë»ØÅ¦¤ÎÄ̤ê¤Ç¡¢»ä¤ÎËܰդϡ¢¤Ð¤±¤é¤µ¤ó¤¬¤ï¤«¤ê¤ä¤¹¤¯Í×Ì󤷤Ƥ¤¤¿¤À¤¤¤¿¤È¤ª¤ê¤Ç¤¹¡£

¤·¤¿¤¬¤Ã¤Æ¡¢·ÈÂÓÅÅÏûö¶È¼Ô¤Ï¤³¤ÎÌäÂê¤ËÂФ·¤ÆÌÈÀÕ¤µ¤ì¤ë¤ï¤±¤Ç¤Ï¤Ê¤¯¼Â»Ü²Äǽ¤ÊÂкö¤Ï¤È¤ë¤Ù¤­¤Ç¤¢¤ê¡¢¶ñÂÎŪ¤Ë¤Ï¡¢i¥â¡¼¥ÉID¤òÍѤ¤¤¿¡Ö¤«¤ó¤¿¤ó¥í¥°¥¤¥ó¡×¤ÎDNS RebindingÀȼåÀ­¤Ë½ñ¤¤¤¿¤è¤¦¤Ë¡¢DNS¥­¥ã¥Ã¥·¥å¤ÎºÇûTTL¤òŤ¯¤¹¤ëÄøÅÙ¤ÎÂкö¤Ï¤È¤ë¤Ù¤­¤À¤È¹Í¤¨¤Þ¤¹¡£

Äɵ­(2010/2/22)

¤«¤ó¤¿¤ó¥í¥°¥¤¥ó¤ÎDNS RebindingÀȼåÀ­¤Î¼ÂÎã¤È¤·¤Æ¡¢¡Ö¥±¡¼¥¿¥¤twitter(twtr.jp)¤Ë¤ª¤¤¤ÆDNS Rebinding¹¶·â¤ËÂФ¹¤ëÀȼåÀ­¤òȯ¸«¡¦ÄÌÊó¤·¡¢Â¨ºÂ¤Ë½¤Àµ¤µ¤ì¤¿¡×¤ò½ñ¤­¤Þ¤·¤¿¤Î¤Ç¤´»²¾È¤¯¤À¤µ¤¤¡£


2010-01-18

¡üi¥â¡¼¥É¥Ö¥é¥¦¥¶2.0¤ÎXMLHttpRequest¤ÇPOST¥Ç¡¼¥¿¤Î°·¤¤¤¬º¤Æñ¤Ë¤Ê¤Ã¤¿

¤³¤Î¥¨¥ó¥È¥ê¤Ç¤Ï¡¢i¥â¡¼¥É¥Ö¥é¥¦¥¶2.0¤ÎÀ©¸Â¤Ë¤è¤ê¡¢XMLHttpRequest¤ÇPOST¥á¥½¥Ã¥É¤ÎÍøÍѤ¬º¤Æñ¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤³¤È¤ò³Îǧ¤·¤¿¤Î¤ÇÊó¹ð¤¹¤ë¡£

i¥â¡¼¥É¥Ö¥é¥¦¥¶2.0¤ÎJavaScript¤ò»î¤·¤Æ¤¤¤Æ¡¢POST¥á¥½¥Ã¥É¤Ç¥Ç¡¼¥¿¤¬ÅϤ»¤Æ¤¤¤Ê¤¤¤³¤È¤Ëµ¤¤¬¤Ä¤¤¤¿¡£°Ê²¼¤Î¤è¤¦¤Ê¥×¥í¥°¥é¥à¤Ç¸¡¾Ú¤·¤Æ¤ß¤¿¡£

¡Úpost.html¡Û
<html>
<head>
<script>
function test() {
  try {
    var requester = new XMLHttpRequest();
    requester.open('POST', '/dumppost.php', true);
    requester.onreadystatechange = function() {
       if (requester.readyState == 4) {
           onloaded(requester);
       }
    };
    requester.setRequestHeader("Content-Type" , "application/x-www-form-urlencoded");
    requester.send("aaa=bbb&ccc=ddd");
  } catch (e) {
    res = requester.responseText;
    document.getElementById('result').innerHTML = e.toString();
  }
}

function onloaded(requester) {
  res = requester.responseText;
  document.getElementById('result').innerHTML = res;
}
</script>
</head>
<body>
<input type=button value="go" onclick="test()">
<div id="result"></div>
</body>
</html>

¡Údumppost.php¡Û
<?php
echo "aaa=" . htmlspecialchars($_POST['aaa'], ENT_QUOTES, 'Shift_JIS') . "<br>";
echo "ccc=" . htmlspecialchars($_POST['ccc'], ENT_QUOTES, 'Shift_JIS') . "<br>";
?>

¼Â¹Ô·ë²Ì¤Ï¡¢°Ê²¼¤Î¤è¤¦¤Ë¤Ê¤Ã¤¿¡£¤Þ¤º¤ÏChrome¤Î¤â¤Î¤À¤¬¡¢IE¤äFirefox¤Ç¤âƱÅù¤Î·ë²Ì¤À¡£

Chorome¤Ç¤Î·ë²Ì

¼¡¤Ë¡¢¥É¥³¥âP-07A¤Ë¤è¤ë·ë²Ì

P-07A¤Ç¤Î·ë²Ì

¥É¥³¥â¤Î¾ì¹ç¤ò¸¡¾Ú¤¹¤ë¤¿¤á¤Ë¡¢Web¥µ¡¼¥Ð¡¼¤ËÍè¤Æ¤¤¤ë¥ê¥¯¥¨¥¹¥È¤ò¥­¥ã¥×¥Á¥ã¤·¤Æ¤ß¤¿¡£

POST /dumppost.php HTTP/1.1
X-UE-Version: 1
Host: XXXXXXXXXXXXX
User-Agent: DoCoMo/2.0 P07A3(c500;TB;W24H15)
Content-Type: text/xml
Content-Length: 15

aaa=bbb&ccc=ddd

¤´Í÷¤Î¤è¤¦¤ËPOST¥Ç¡¼¥¿¤½¤Î¤â¤Î¤ÏÁ÷¿®¤µ¤ì¤Æ¤­¤Æ¤¤¤ë¤¬¡¢Content-Type¤¬text/xml¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤¿¤á¤Ë¡¢Web¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¦¤Ç¼õ¤±¼è¤ì¤Ê¤¤¤è¤¦¤À¡£

JavaScript¦¤Ç¤Ï¡¢¤³¤ÎÃͤòapplication/x-www-form-urlencoded¤ËÊѹ¹¤·¤Æ¤¤¤ë¤¬¡¢P-07A¤Ç¤âJavaScript¤¬ºÆ³«¤µ¤ì¡¢¤¢¤é¤¿¤ÊÀ©¸Â¤¬¤ß¤Ä¤«¤Ã¤¿¤ÇÊó¹ð¤·¤¿¤è¤¦¤Ë¡¢setRequestHeader¤¬Ìµ¸ú²½¤µ¤ì¤Æ¤¤¤ë¤¿¤á¤Ë¡¢¤³¤ÎÀßÄ̵꤬»ë¤µ¤ì¤Æ¤¤¤ë¤³¤È¤¬¸¶°ø¤Î¤è¤¦¤À¡£

¤³¤ì¤ÏÌÀ¤é¤«¤Ë¡¢setRequestHeader̵¸ú²½¤ÎÉûºîÍѤǤ¢¤ë¤¬¡¢¤½¤ÎÂå½þ¤ÏÂ礭¤¤¤è¤¦¤Ë»×¤¦¡£PHP°Ê³°¤Ë¡¢ASP/ASPX¡¢J2EE(JSP)¤Ë¤³¤Î¥Ç¡¼¥¿¤òÆþÎϤ·¤Æ¤ß¤¿¤¬¡¢¤¤¤º¤ì¤âÃͤòÆÉ¤ß¼è¤ë¤³¤È¤Ï¤Ç¤­¤Ê¤«¤Ã¤¿¡£°ìÊý¡¢Perl¤ÎCGI¥â¥¸¥å¡¼¥ë¤Ç¤Ï¡¢POSTDATA¤È¤¤¤¦Ì¾¾Î¤Î¥Ç¡¼¥¿¤È¤·¤Æ¡¢POST¥Ç¡¼¥¿Á´ÂΤòÆÉ¤ß¼è¤ë¤³¤È¤¬¤Ç¤­¤¿¡£Perl°Ê³°¤Î¾ì¹ç¤Ç¤â¡¢Web¥µ¡¼¥Ð¡¼¤Ë¥Ç¡¼¥¿¼«ÂΤÏÅþ㤷¤Æ¤¤¤ë¤Î¤À¤«¤éÃͤòÍøÍѤ¹¤ë¼êÃʤϤ¢¤ë¤«¤â¤·¤ì¤Ê¤¤¤¬¡¢»ä¤¬Ä´¤Ù¤¿ÈϰϤǤÏʬ¤«¤é¤Ê¤«¤Ã¤¿¡£

¾åµ­¤Î·ë²Ì¤È¤·¤Æ¡¢Ajax¤ÇPOST¥á¥½¥Ã¥É¤ò°·¤¦¤Ë¤Ï¡¢É¸½àŪ¤Ç¤Ê¤¤ÊýË¡¤òÍѤ¤¤ëɬÍפ¬¤¢¤ë¤ï¤±¤À¤¬¡¢¤½¤ÎÊýË¡¤ò¸¡Æ¤¤·¤Æ¤ß¤¿¡£

  1. POST¤ò¤¢¤­¤é¤á¤ÆGET¤ò»È¤¦
  2. Perl¤Î¤è¤¦¤Ë¡¢text/xml·Á¼°¤Î¥Ç¡¼¥¿¤òÆÉ¤ß½Ð¤»¤ë¸À¸ì¤òÁªÂò¤¹¤ë
  3. DOM¤Ë¤è¤ê¡¢IFRAMEÆâ¤ËFORM¤òºîÀ®¤·¤ÆSUBMIT¤¹¤ë

¤³¤Î¤¦¤Á¡¢¾åµ­1.¤Ë¤Ä¤¤¤Æ¤Ï¡¢¥»¥­¥å¥ê¥Æ¥£¾å¤ÎÌäÂ꤬ȯÀ¸¤·ÆÀ¤ë¡£Ajax¤Î¥»¥­¥å¥ê¥Æ¥£Âкö¤È¤·¤Æ¡¢¡ÖGET¥á¥½¥Ã¥É¤òµñÀ䤹¤ë¡×¤È¤¤¤¦ÊýË¡¤¬¤¢¤ë¤«¤é¤À¡£¶ñÂÎŪ¤Ë¤Ï¡¢SCRIPTÍ×ÁǤò»È¤Ã¤ÆSame Origin Policy¤ò²óÈò¤·¤ÆAjax¥Ç¡¼¥¿¤òÆÉ¤ß½Ð¤¹¼êË¡¤ËÂй³¤·¤Æ¡¢SCRIPTÍ×ÁǤǤÏɬ¤ºGET¥á¥½¥Ã¥É¤Ë¤Ê¤ë¤³¤È¤«¤é¡¢POST¤Î¤ß¤òµöÍÆ¤¹¤ë¤³¤È¤ÇÂкö¤¹¤ë¤È¤¤¤¦ÊýË¡¤À¡£´û¸¤Î¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤¬¤³¤Î¤è¤¦¤Ê¼êË¡¤Ë¤è¤ê¥»¥­¥å¥ê¥Æ¥£Âкö¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ë¡¢°Â°×¤ËGET¥á¥½¥Ã¥É¤òµöÍÆ¤·¤Æ¤·¤Þ¤¦¤È¡¢¥»¥­¥å¥ê¥Æ¥£¥Û¡¼¥ë¤¬º®Æþ¤¹¤ë¤³¤È¤Ë¤Ê¤ê¤«¤Í¤Ê¤¤¡£

3.¤Ë¤Ä¤¤¤Æ¤Ï¡¢»ä¤¬»î¤·¤¿ÈϰϤǤϤ¦¤Þ¤¯¤¤¤Ã¤Æ¤¤¤Ê¤¤¡£JavaScript¤«¤éIFRAMEÆâ¤ÎFORMÁàºî¤¬¤¦¤Þ¤¯¤¤¤«¤Ê¤¤¤Î¤À¡£¤³¤ì¤â¡¢¤Ò¤ç¤Ã¤È¤¹¤ë¤ÈÀ©¸Â¤ò³Ý¤±¤Æ¤¤¤ë¤Î¤«¤â¤·¤ì¤Ê¤¤¡£¥¢¥É¥Û¥Ã¥¯¤ÊÊýË¡¤Ê¤é¤¢¤ê¤½¤¦¤À¤¬¡¢¤Þ¤À½½Ê¬¤Ë¸¡¾Ú¤Ç¤­¤Æ¤¤¤Ê¤¤¡£

°ì¤Ä¤Îµ¿Ìä¤Ï¡¢¤³¤Î¤è¤¦¤Ê¾ðÊ󤬥¤¥ó¥¿¡¼¥Í¥Ã¥È¾å¤Ë¸«¤¢¤¿¤é¤Ê¤¤¤³¤È¤À¡£Ajax¤ÇPOST¥á¥½¥Ã¥É¤¬»È¤¨¤Ê¤¤¤È¤¤¤¦¤Î¤Ï¤È¤ó¤Ç¤â¤Ê¤¤¤³¤È¤À¤¬¡¢¸¡º÷¤·¤Æ¤â¤½¤Î¤è¤¦¤Ê¾ðÊ󤬤ߤ¢¤¿¤é¤Ê¤¤¤Î¤À¡£i¥â¡¼¥É¥Ö¥é¥¦¥¶2.0¤ÎAjax¤òï¤â»È¤Ã¤Æ¤¤¤Ê¤¤¤Î¤«¡¢¤½¤ì¤È¤â»ö¶È¼Ô¤¬¶²¤í¤·¤¯¤Æ¸ý¤ò¤Ä¤°¤ó¤Ç¤¤¤ë¤Î¤«¡£

¤·¤«¤·¡¢¤³¤Î¤è¤¦¤Êµ»½Ñ¾ðÊó¤¬Î®Ä̤·¤Æ¤¤¤«¤Ê¤¤¸Â¤ê¡¢i¥â¡¼¥É¥Ö¥é¥¦¥¶2.0¤ÎJavaScript¤ò»È¤Ã¤¿¥³¥ó¥Æ¥ó¥Ä¤ÏÉáµÚ¤·¤Æ¤¤¤«¤Ê¤¤¤À¤í¤¦¡£NTT¥É¥³¥â¤Ë¤Ï¤µ¤é¤Ê¤ë¾ðÊ󳫼¨¤ò´üÂÔ¤·¤¿¤¤¤·¡¢¥±¡¼¥¿¥¤Web¤Î³«È¯¼Ô¤Ë¤â¡¢¤â¤Ã¤È¥Ö¥í¥°¤Ê¤É¤Ç¤Î¾ðÊó¸ø³«¤ò´üÂÔ¤¹¤ë¡£

ËÜÆü¤Î¥Ä¥Ã¥³¥ß(Á´10·ï) [¥Ä¥Ã¥³¥ß¤òÆþ¤ì¤ë]

Before...

¡ú yamagata [¥¹¥È¥ê¡¼¥à¤È¤·¤Æ¼èÆÀ¤·¤Æ¼«Ê¬¤Çʬ²ò¤¹¤ëÊýË¡¤ÇÂбþ¤·¤è¤¦¤È»×¤¨¤Ð½ÐÍè¤ë¾õ¶·¤À¤È¤·¤Æ¤â¡¢¡Ê¤½¤ì¤Þ¤Ç¤ËÈæ¤Ù¤Æ¡Ë¼ê½ç¤¬¥Õ¥¯¥¶..]

¡ú ɱ [µ­»ö¤È¤Ï´Ø·¸¤Ê¤¤¥³¥á¥ó¥È¤Ç¤¹¤¤¤Þ¤»¤ó http://nat-q.jp/ctg3/q_detail.php?no..]

¡ú ÆÁ´Ý¹À [ɱ¤µ¤ó ¼ÁÌä¤ò¸«¤Æ¤ß¤Þ¤·¤¿¤¬¡¢¤³¤ì¤Ï¤´Ëܿͤ¬¥É¥³¥â¥·¥ç¥Ã¥×¤ËÁêÃ̤˹Ԥ¯¤Î¤¬¤è¤¤¤È»×¤¤¤Þ¤¹¡£¤¢¤¯¤Þ¤ÇÁÛÁü¤Ç¤¹¤¬¡¢..]


2009-10-19 [Perl][PHP][SQL]

¡üquote¥á¥½¥Ã¥É¤Î¿ôÃͥǡ¼¥¿Âбþ¤ò¸¡¾Ú¤¹¤ë

¤³¤Î¥¨¥ó¥È¥ê¤Ç¤Ï¡¢Perl¤ÎDBI¡¢PHP¤ÎPDO¡¢MDB2¤Ë¤ÆÍѰդµ¤ì¤Æ¤¤¤ëquote¥á¥½¥Ã¥É¤¬¿ôÃͥǡ¼¥¿¤ò¤É¤Î¤è¤¦¤Ë°·¤¨¤ë¤«¤ò¸¡¾Ú¤·¤Þ¤·¤¿¡£·ëÏÀ¤È¤·¤ÆMDB2¤¬¹ç³Ê¡¢¤½¤ì°Ê³°¤ÏÉÔ¹ç³Ê¤Ç¡¢¤È¤¯¤ËDBD::mysql¤ò»ÈÍѤ·¤¿¾ì¹ç¡¢ÀȼåÀ­¤È¤¤¤Ã¤Æ¤â¤è¤¤¤è¤¦¤Ê·ë²Ì¤È¤Ê¤ê¤Þ¤·¤¿¡£

³µÍ×

DBI¡¢PDO¡¢MDB2¤Ï¡¢¤¤¤º¤ì¤â¥Ç¡¼¥¿¥Ù¡¼¥¹¥¢¥¯¥»¥¹¤òÃê¾Ý²½¤·¤¿¥â¥¸¥å¡¼¥ë(¥¯¥é¥¹)¤Ç¤¢¤ê¡¢ÈÆÍÑŪ¤Êµ­½Ò¤Ë¤è¤ê¤µ¤Þ¤¶¤Þ¤Ê¥Ç¡¼¥¿¥Ù¡¼¥¹¤òÍøÍѤǤ­¤ë¤è¤¦¤Ë¹©Éפµ¤ì¤Æ¤¤¤Þ¤¹¡£¤³¤ì¤é¥â¥¸¥å¡¼¥ë(¥¯¥é¥¹)¤Ë¤Ïquote¤È¤¤¤¦¥á¥½¥Ã¥É¤¬ÍѰդµ¤ì¤Æ¤¤¤Þ¤¹¡£DBI¤Îquote¥á¥½¥Ã¥É¤Î¸Æ¤Ó½Ð¤·Îã¤ò¼¨¤·¤Þ¤¹¡£

my $dbh = DBI->connect('DBI:mysql:dbname:localhost', 'user', 'pass');
print $dbh->quote("a\\'");    # ¡Öa\'¡×¤È¤¤¤¦Ê¸»úÎó¤ò»ØÄê

¡Ú½èÍý·ë²Ì¡Û
'a\\\''

¤´¤é¤ó¤Î¤è¤¦¤Ë¡¢¤¢¤ë¤¤¤Ïquote¤È¤¤¤¦Ì¾¾Î¤¬¼¨¤¹¤è¤¦¤Ë¡¢¤³¤ì¤é¥á¥½¥Ã¥É¤ÏÆþÎϥǡ¼¥¿¤òSQLʸ»úÎó¥ê¥Æ¥é¥ë¤È¤·¤Æ¥¨¥¹¥±¡¼¥×¤·¤¿¾å¤Ç¡¢¥·¥ó¥°¥ë¥¯¥ª¡¼¥È¤Ç¤¯¤¯¤ê¤Þ¤¹¡£SQL¤Îʸ»úÎó¥ê¥Æ¥é¥ë¤Î¥¨¥¹¥±¡¼¥×ÊýË¡¤Ï¥Ç¡¼¥¿¥Ù¡¼¥¹¥½¥Õ¥È¥¦¥§¥¢°Í¸¤Ç¤¢¤ê¡¢MySQL¤Î¾ì¹ç¤Ï¥·¥ó¥°¥ë¥¯¥ª¡¼¥È¤È¥Ð¥Ã¥¯¥¹¥é¥Ã¥·¥å¤ò¥¨¥¹¥±¡¼¥×¤·¤Þ¤¹¤¬¡¢É¸½àSQL¤Ç¤Ï¥·¥ó¥°¥ë¥¯¥ª¡¼¥È¤Î¤ß¤Ç¤¹*1¡£quote¥á¥½¥Ã¥É¤òÍøÍѤ¹¤ë¤³¤È¤Ë¤è¤ê¡¢¥Ç¡¼¥¿¥Ù¡¼¥¹¤Î¼ïÎà¤ò¼«Æ°Åª¤Ë¹Íθ¤·¤Æ¡¢SQL¤ò°ÂÁ´¤«¤Ä´ÊÊØ¤ËưŪÁȤßΩ¤Æ¤Ç¤­¤Þ¤¹¡£

¤µ¤Æ¡¢quote¥á¥½¥Ã¥É¤Ë¤Ï¾Êά²Äǽ¤ÊÂèÆó°ú¿ô¤¬¤¢¤ê¡¢¥Ç¡¼¥¿¤Î·¿¤ò»ØÄê¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹(¥Ç¥Õ¥©¥ë¥È¤Ïʸ»úÎó·¿)¡£°Ê²¼¤Ë¡¢À°¿ô·¿¤ò»ØÄꤷ¤¿¾ì¹ç¤Î¸Æ¤Ó½Ð¤·Êý¤ò¼¨¤·¤Þ¤¹¡£

DBI:  $dbh->quote($n, SQL_INTEGER)
PDO:  $dbh->quote($n, PDO::PARAM_INT)
MDB2: $dbh->quote($n, 'integer')

¤´¤é¤ó¤Î¤è¤¦¤Ë¡¢¸Æ¤Ó½Ð¤·Êý¤Ï¤Û¤È¤ó¤ÉƱ¤¸¤Ç¤¹¡£¤Ç¤Ï¡¢¤³¤Î½èÍý·ë²Ì¤Ï¡¢¤É¤¦¤Ê¤ë *¤Ù¤­* ¤Ç¤·¤ç¤¦¤«¡£»ä¤Î²áµî¤ÎÆüµ­¡Ö¿ôÃ͹àÌܤËÂФ¹¤ëSQL¥¤¥ó¥¸¥§¥¯¥·¥ç¥óÂкö¤Î¤Þ¤È¤á¡×¤ä¡ÖSQL¤Î°ÅÌۤη¿ÊÑ´¹¤Ï¥ï¥Ê¤¬¤¤¤Ã¤Ñ¤¤¡×¤ÇÀâÌÀ¤·¤¿¤è¤¦¤Ë¡¢SQL¤ÏËÜÍ踷³Ê¤Ê·¿¤ò¤â¤Ã¤¿¸À¸ì¤Ç¤¢¤ê¡¢¿ôÃÍ¥ê¥Æ¥é¥ë¤ò¥·¥ó¥°¥ë¥¯¥ª¡¼¥È¤Ç°Ï¤à¤³¤È¤Ï¹¥¤Þ¤·¤¯¤¢¤ê¤Þ¤»¤ó¡£¤·¤¿¤¬¤Ã¤Æ¡¢quote¥á¥½¥Ã¥É¤Ë¿ôÃÍ·¿¤ò»ØÄꤷ¤¿¾ì¹ç¤Ï¡¢¤¿¤ó¤Ê¤ë¿ôÃͤ¬ÊÖ¤ë¤Ù¤­¤À¤È¹Í¤¨¤Þ¤¹(SQLÁȤßΩ¤Æ¤¬ÌÜŪ¤Ê¤Î¤Ç¡¢·¿¤Ïʸ»úÎ󷿤Ǥâ¤è¤¤)¡£¤½¤³¤Ç¡¢ÆþÎϥǡ¼¥¿¤Î¥µ¥ó¥×¥ë¤È¤·¤Æ¡Ö1a\'¡×¤òÂè°ì°ú¿ô¤Ë¡¢À°¿ô·¿»ØÄê¤òÂèÆó°ú¿ô¤È¤·¤Æquote¥á¥½¥Ã¥É¤ò¸Æ¤Ó½Ð¤·¤Æ¤ß¤Þ¤·¤¿¡£

DBI:  $dbh->quote("1a\\'", SQL_INTEGER)
PDO:  $dbh->quote("1a\\'", PDO::PARAM_INT)
MDB2: $dbh->quote("1a\\'", 'integer')

·ë²Ì¤Ï°Ê²¼¤Î¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£PDO¤ÈMDB2¤Ï¡¢MySQL¤ÈPostgreSQL¤ÇƱ¤¸·ë²Ì¤Ç¤¹¡£

¥â¥¸¥å¡¼¥ë̾ ·ë²Ì
DBI(DBD::mysql) 1a\'
DBI(DBD::PgPP) '1a\\\''
PDO '1a\\\''
MDB2 1 (int·¿)

Àè¤Ë½ñ¤¤¤¿¡Ö¤¢¤ë¤Ù¤­·ë²Ì¡×¤Ë¤Ê¤Ã¤¿¤Î¤ÏMDB2¤À¤±¤Ç¤·¤¿¡£PDO¤ÈDBD::PgPP¤Ï¡¢Ê¸»úÎ󷿤Ȥ·¤Æ»ØÄꤷ¤¿¤Î¤ÈƱ¤¸·ë²Ì¤Ç¤¢¤ê¡¢SQL¥¤¥ó¥¸¥§¥¯¥·¥ç¥óÂкö¤È¤·¤Æµ¡Ç½¤·¤Þ¤¹¤¬¡¢¤Ê¤ó¤Î¤¿¤á¤Ë¤ï¤¶¤ï¤¶À°¿ô·¿¤ò»ØÄꤷ¤¿¤Î¤«¤ï¤«¤ê¤Þ¤»¤ó¡£DBD::mysql¤Ï¥¨¥¹¥±¡¼¥×¤â¥¯¥ª¡¼¥È¤â¤·¤Æ¤¤¤Ê¤¤¤Î¤Ç¡¢ÆþÎϤȤ·¤Æ¡Ö1 union select table_name from information_schema.tables¡×¤òÍ¿¤¨¤é¤ì¤ë¤È¡¢°ìÍ÷ɽ¤òɽ¼¨¤¹¤ë²èÌ̤ǥơ¼¥Ö¥ë¤Î°ìÍ÷¤¬É½¼¨¤µ¤»¤é¤ì¤ë¤è¤¦¤Ê·ë²Ì¤È¤Ê¤ê¤Þ¤¹¡£¤³¤ì¤Ï¤Þ¤º¤¤¡£¸½¼ÂÌäÂê¤È¤·¤Æ¡¢²¿¤â¤·¤Ê¤¤¤Î¤Ç¤Ï¡¢¤ï¤¶¤ï¤¶quote¤ò¥á¥½¥Ã¥É¤ò¸Æ¤Öưµ¡¤¬¤¢¤ê¤Þ¤»¤ó¡£

¤Þ¤¿¡¢Ê¸»úÎó¤È¤·¤Æ¥¨¥¹¥±¡¼¥×¤¹¤ëÊýË¡¤â¡¢Àè¤Î¥¨¥ó¥È¥ê¤ÇÀâÌÀ¤·¤¿¤è¤¦¤Ë¡¢¤µ¤Þ¤¶¤Þ¤ÊÉûºîÍѤ¬¤¢¤ê¤Þ¤¹¤Î¤Ç¡¢quote¥á¥½¥Ã¥É¤ò»È¤¦¤è¤ê¤Ï¡¢SQL¸Æ¤Ó½Ð¤·Ä¾Á°¤Ç¥Ð¥ê¥Ç¡¼¥·¥ç¥ó¤¹¤ë¤«¡¢sprintf¤Ç%d¤Î½ñ¼°¤òÍ¿¤¨¤ë¤³¤È¤Ç¡¢¿ôÃͤΤߤ¬½ÐÎϤµ¤ì¤ë¤è¤¦¤ËÀ©¸Â¤¹¤ë¼êË¡¤¬¹Í¤¨¤é¤ì¤Þ¤¹¡£

º£²ó¤ÎÄ´ºº¤Ç¡¢MDB2¤Îquote¥á¥½¥Ã¥É¤Ï¡¢¤ï¤ê¤È¤¤¤¤Àþ¹Ô¤Ã¤Æ¤¤¤ë¤È»×¤¤¤Þ¤·¤¿¡£MDB2¤Îquote¤Ç¤Ï¡¢'decimal'¤È¤¤¤¦»ØÄê¤â¤Ç¤­¤ë¤Î¤Ç¤¹¤¬¡¢20·åÄøÅ٤οôÃͤòÍ¿¤¨¤Æ¤â¡¢ÇËþ¤Ê¤¯Æ°ºî¤·¤Þ¤¹¡£

ÆþÎÏ ½ÐÎÏ
123456789012345678901 (ʸ»úÎó·¿) 123456789012345678901 (ʸ»úÎó·¿¡¢¥¯¥ª¡¼¥È¤Ê¤·)
1a2b3 (ʸ»úÎó·¿) 123 (ʸ»úÎó·¿¡¢¥¯¥ª¡¼¥È¤Ê¤·)

'1a2b3'¤ËÂФ¹¤ë·ë²Ì¤¬¡Ö123¡×¤È¤Ê¤ë¤È¤³¤í¡¢¡Ö¥µ¡¢¥µ¥Ë¥¿¥¤¥º¤«¤è¡×¤È»×¤Ã¤Æ¤·¤Þ¤¤¤Þ¤¹¤¬¡¢¤Þ¤¡¿ôÃͤȤ·¤Æ¤Î¥Ð¥ê¥Ç¡¼¥·¥ç¥ó¤ÏÆþ¤ê¸ý¤Ç¤ä¤ë¤È¤·¤Æ¡¢SQLȯ¹Ô»þ¤Î¡ÖºÇ¸å¤ÎºÖ¡×¤È¤·¤Æ¤Ï¡¢¤Þ¤¡µöÍÆ¤Ç¤­¤ëÈϰϤǤϤʤ¤¤«¤È»×¤¤¤Þ¤¹¡£¡ÖÎã³°¤òȯÀ¸¤µ¤»¤ë¤Ù¤­¤¸¤ã¤Ê¤¤¤Î?¡×¤È»×¤¦¤Î¤Ç¤¹¤¬¡¢Â¾¤Î¥â¥¸¥å¡¼¥ë¤Î¤À¤á¤µ²Ã¸º¤È¤ÎÈæ³Ó¤Ç¤Ï¾å½ÐÍè¤Ç¤·¤ç¤¦¡£

¤Ê¤ª¡¢DECIMAL·¿¤Î¾ì¹ç¤Ë¡¢Ê¸»úÎ󷿤Ƿë²Ì¤òÊÖ¤¹¤Î¤ÏÂÅÅö¤Ê½èÍý¤Ç¤¹¡£PHP¤Ëɸ½à¤ÇÍѰդµ¤ì¤Æ¤¤¤ëinteger¤äfloat¤Ç¤Ï¡¢DECIMAL¤Î·å¿ô(MySQL¤Ç¤ÏºÇÂç65·å¡¢PostgreSQL¤Ç¤ÏºÇÂç1,000·å)¤òɽ¸½¤¹¤ë¤Î¤Ë½½Ê¬¤Ê¥Ó¥Ã¥ÈŤ¬¤Ê¤¤¤«¤é¤Ç¤¹¡£±é»»¤Ï¤É¤¦¤¹¤ë¤Î¤À¤È¤¤¤¦µ¿Ì䤬¤¢¤ê¤½¤¦¤Ç¤¹¤¬¡¢DB¤ÎÀ­Ç½¤Ë;͵¤¬¤¢¤ì¤ÐSQL¤Ç±é»»¤¹¤ë¤È¤¤¤¦¼ê¤â¤¢¤ê¤Þ¤¹¤·¡¢BCMath Ǥ°ÕÀºÅÙ¿ô³Ø´Ø¿ô¤ò»È¤¦¼ê¤â¤¢¤ê¤Þ¤¹¡£BCMath¤Ïʸ»úÎ󷿤ΤޤޤǿôÃͱ黻¤¬¤Ç¤­¤Þ¤¹¡£

¤Þ¤È¤á

DBI¡¢PDO¡¢MDB2¤Îquote¥á¥½¥Ã¥É¤Ë¤Ä¤¤¤Æ¡¢ÂèÆó°ú¿ôÌÀ¼¨¤Ë¤è¤ê¿ôÃͤȤ·¤Æ½èÍý¤¹¤ëÆâÍÆ¤Ë¤Ä¤¤¤Æ¸¡¾Ú¤·¤Þ¤·¤¿¡£´üÂԤɤª¤êưºî¤¹¤ë¤Î¤ÏMDB2¤Ç¤¢¤ê¡¢°ìÊýDBD::mysql¤Ç¤Ï¤Ê¤Ë¤â¤·¤Æ¤¤¤Ê¤¤¤Î¤ÇÀȼåÀ­Âкö¤È¤·¤Æ¤Ï»È¤¨¤Ê¤¤¤³¤È¤¬¤ï¤«¤ê¤Þ¤·¤¿¡£

¤Þ¤¿¡¢º£²ó¤Î¥¨¥ó¥È¥ê¤Ç¤Ï¼¨¤·¤Æ¤¤¤Þ¤»¤ó¤¬¡¢PDO¤Ï½èÍý¤¬¹â®¤Ê¤¿¤á¤Ë¿Íµ¤¤¬¤¢¤ë¤â¤Î¤Î¡¢ÆâÉô½èÍý¤ò¤Ä¤Ã¤³¤ó¤Ç¸«¤Æ¤¤¤¯¤È¡¢É԰¤¬½Ð¤Æ¤­¤Þ¤·¤¿¡£¤½¤ÎÆâÍÆ¤Ë¤Ä¤¤¤Æ¤ÏÊÌÅÓ²¿¤«¤Î·Á¤Çȯɽ¤·¤¿¤¤¤È»×¤¤¤Þ¤¹¤¬¡¢¸½»þÅÀ¤Ç¤Ï¡¢id:moriyoshi¤µ¤ó¤Î°Ê²¼¤Î¥¨¥ó¥È¥ê¤¬»²¹Í¤Ë¤Ê¤ë¤È»×¤¤¤Þ¤¹¡£

»²¹Í: PDO¤È¥×¥ê¥Ú¥¢¡¼¥É¥¹¥Æ¡¼¥È¥á¥ó¥È

*1 ¾ÜºÙ¤Ë¤Ä¤¤¤Æ¤Ï¡¢¡Ö SQL¤Î¥¨¥¹¥±¡¼¥×ºÆ¹Í ¡×¤ª¤è¤Ó¡ÖSQL¥¨¥¹¥±¡¼¥×¤Ë¤ª¤±¤ë¡Ö\¡×¤Î¼è¤ê°·¤¤ ¡×¤Ë¾Ü¤·¤¯½ñ¤­¤Þ¤·¤¿¤Î¤Ç»²¹Í¤Ë¤Ê¤µ¤Ã¤Æ¤¯¤À¤µ¤¤


2009-10-14 [php]

¡ühtmlspecialchars/htmlentities¤ÏBMP³°¤Îʸ»ú¤òÀµ¤·¤¯°·¤¨¤Ê¤¤

PHP¤Î°ÂÄêÈÇ(PHP5.3.0¡¢PHP5.2.11)¤Îhtmlspecialchars¤ª¤è¤Óhtmlentities¤Ë¤Ï¡¢Unicode¤Î´ðËÜ¿¸À¸ìÌÌ (BMP)Èϰϳ°¤Îʸ»ú¡¢¤¹¤Ê¤ï¤Á¡¢U+10000°Ê¹ß¤Îʸ»ú¤òÀµ¤·¤¯°·¤¨¤Ê¤¤ÌäÂ꤬¤¢¤ê¤Þ¤¹¡£

¤â¤Ã¤È¤â¥·¥ó¥×¥ë¤ÊºÆ¸½¥³¡¼¥É¤ò°Ê²¼¤Ë¼¨¤·¤Þ¤¹¡£

<?php
  $c = "\xF0\x90\x80\xBC"; // U+1003C
  $a = htmlspecialchars($c, ENT_QUOTES, 'UTF-8');
  echo bin2hex($a) . ':' . $a;

¡Ú½èÍý·ë²Ì¡Û
266c743b:&lt;

U+1003C¤Ï¡¢Wikipedia¤ÎÀâÌÀ¤Ë¤è¤ë¤È¡¢ÂçÀΤΥ®¥ê¥·¥ã¤Î¡ÖÀþʸ»úB¡×¤òɽ¤¹¤½¤¦¤Ç¡¢¾®¤Ê¤êµ­¹æ¤È¤Ï´Ø·¸¤Ê¤¤¤Î¤Ç¡¢ËÜÍ褽¤Î¤Þ¤Þ½ÐÎϤ·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¤â¤Î¤Ç¤¹¡£htmlspecialchars¤ª¤è¤Óhtmlentities¤ÎÆâÉô½èÍý¤Ç¡¢¥³¡¼¥É¥Ý¥¤¥ó¥È¤Î²¼°Ì16¥Ó¥Ã¥È¤·¤«¤ß¤Æ¤¤¤Ê¤¤¤è¤¦¤Ç¡¢¤³¤Î¤è¤¦¤Ê·ë²Ì¤È¤Ê¤ê¤Þ¤¹¡£

Àþʸ»úB¤ò°·¤¦¿Í¸ý¤Ï¾¯¤Ê¤¤¤È»×¤ï¤ì¤Þ¤¹¤Î¤Ç¡¢¤â¤¦¾¯¤·¿È¶á¤ÊÎã¤òõ¤·¤Æ¤ß¤Þ¤·¤¿¡£

<?php
  $c = "\xF0\xA2\x89\xBF";  // U+2227F¡Ê𢉿 ¡Ä¥Þ¥À¥ì¤ËÇϤȤ¤¤¦»ú¡Ë
  $a = htmlentities($c, ENT_QUOTES, 'UTF-8');
  echo bin2hex($a) . ':' . $a;

¡Ú½èÍý·ë²Ì¡Û
26736373696d3b:&scsim;

𢉿¤Ï¡¢µþÅÔÉÜĹ²¬µþ»Ô¤ÎÃÏ̾¤Ç𢉿»Ò¥±³Ù¡Ê¤«¤é¤Í¤¬¤¿¤±¡Ë¤Ë»È¤ï¤ì¤Æ¤¤¤ëʸ»ú¤Ç¤¹¡Ê»²¹Í:µ©¾¯ÃÏ̾´Á»ú¥ê¥¹¥È¡¢Google Map¡Ë¡£°ìÊý¡¢&scsim;¤ÏSGML¤Îʸ»ú¼ÂÂλ²¾È¤Î¥Þ¥Ã¥Ô¥ó¥°¤Ë½Ð¤Æ¤¯¤ëµ­¹æ¤Ç¡¢≿¡Ê¥«¡¼¥Ö¤·¤¿Âç¤Ê¤êµ­¹æ¤Î²¼¤Ë¡Á¡Ë¤òɽ¤·¤Þ¤¹¡£¤³¤Î¼ÂÂλ²¾È·Á¼°¤ÏFireFox¤Ê¤É¤Î¥Ö¥é¥¦¥¶¤Ç¤Ïɽ¼¨¤Ç¤­¤Þ¤»¤ó¤¬¡¢¤½¤Î¤è¤¦¤Êʸ»ú¼ÂÂλ²¾È¤ËÊÑ´¹¤µ¤ì¤ë·Ð°Þ¤Ï¡¢id:moriyoshi¤µ¤ó¤Î¡ÖPHP¤Îhtmlentities()¤Ç (HTML4.0Ū¤Ë) ;·×¤Ë¼ÂÂλ²¾È¤ËÊÑ´¹¤µ¤ì¤Æ¤·¤Þ¤¦Ê¸»ú¤Î°ìÍ÷¡×¤ËÀâÌÀ¤µ¤ì¤Æ¤¤¤Þ¤¹¡£

BMP³°¤Îʸ»ú¤ò°·¤¦µ¡²ñ¤Ï¾¯¤Ê¤¤¤È¤Ï»×¤¤¤Þ¤¹¤¬¡¢Àµ¾ï·Ï¤Î¥Ç¡¼¥¿¤¬Àµ¤·¤¯°·¤¨¤Ê¤¤¤È¤¤¤¦°ÕÌ£¤Ç¤Ï¡¢Àè¤Îʸ»ú¥¨¥ó¥³¡¼¥Ç¥£¥ó¥°¤Î¥Á¥§¥Ã¥¯ÉÔÈ÷¤è¤ê¤â½Å¤¤ÌäÂê¤À¤È¹Í¤¨¤Þ¤¹¡£¹¬¤¤¡¢id:moriyoshi¤µ¤ó¤¬Àè¤Ëµ¤¤Å¤«¤ì¤Æ¡¢Ê¸»ú¥¨¥ó¥³¡¼¥Ç¥£¥ó¥°¤ÎÌäÂê¤È¹ç¤ï¤»¤Æ½¤Àµ¤µ¤ì¤Æ¤¤¤Þ¤¹¤Î¤Ç¡¢¤ª¤½¤é¤¯PHP5.3.2¤«¤é¤Ï½¤Àµ¤µ¤ì¤ë¤â¤Î¤È»×¤ï¤ì¤Þ¤¹¡£PHP¤ÎºÇ¿·¤Î¥¹¥Ê¥Ã¥×¥·¥ç¥Ã¥È¤Ë¤Æ½¤Àµ¤º¤ß¤Ç¤¢¤ë¤³¤È¤ò³Îǧ¤·¤Æ¤¤¤Þ¤¹¡£

±Æ¶Á¤ò¼õ¤±¤ë¥±¡¼¥¹

¤³¤ÎÌäÂê¤ò¼õ¤±¤ë¤Î¤Ï¡¢Ê¸»ú¥¨¥ó¥³¡¼¥Ç¥£¥ó¥°¤È¤·¤ÆUTF-8¤ò»ÈÍѤ·¤Æ¤¤¤ë¾ì¹ç¤Ë¡¢BMPÈϰϳ°¤Îʸ»ú¤¬Í¿¤¨¤é¤ì¤¿¾ì¹ç¤Ç¤¹¡£

Âкö

PHP¦¤ÎÂбþ¤¬´°Î»¤¹¤ë¤Þ¤Ç¤Î´Ö¤Ï°Ê²¼¤Î¤è¤¦¤Ë¤¹¤ì¤Ð¤è¤¤¤È»×¤¤¤Þ¤¹¡£htmlentities¤è¤ê¤Ïhtmlspecialchars¤ÎÊý¤¬±Æ¶Á¤¬¾¯¤Ê¤¤¤³¤È¡¢Ä̾ïhtmlentities¤ò»È¤¦Íýͳ¤Ï¤Ê¤¤¡Ê»²¹Í:htmlspecialchars¤ÈÉÔÀµ¤Êʸ»ú¤ÎÏà ¡Ë¤³¤È¤«¤é¡¢htmlspecialchars¤ò»È¤Ã¤¿¾å¤Ç¡¢±Æ¶Á¤Î¤¢¤ëʸ»ú¤ò°·¤ï¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¾ì¹ç¤Ï¸ÄÊ̤˼êÅö¤¹¤ë¤·¤«¤Ê¤¤¤Ç¤·¤ç¤¦¡£Unicode5.1¤ÎÈϰϤǡ¢htmlspecialchars¤Ë¤è¤êÉÔÀµ¤ËÊÑ´¹¤µ¤ì¤ëʸ»ú¤Ï¡¢°Ê²¼¤Î13¼ï¤Ç¤¹¡£htmlentities¤ò»ÈÍѤ¹¤ë¤È616¼ï¤ËÁý¤¨¤Þ¤¹¡£𢉿¤â¤½¤Î°ì¤Ä¤Ç¤¹¡£

U+10022 Àþʸ»úB²»Àáʸ»ú
U+10026 Àþʸ»úB²»Àáʸ»ú
U+1003C Àþʸ»úB²»Àáʸ»ú
U+20022 𠀢
U+20026 𠀦
U+20027 𠀧
U+2003C 𠀼
U+2003E 𠀾
U+E0022 ¸À¸ì¥¿¥°
U+E0026 ¸À¸ì¥¿¥°
U+E0027 ¸À¸ì¥¿¥°
U+E003C ¸À¸ì¥¿¥°
U+E003E ¸À¸ì¥¿¥°

¸ÄÊ̤ËÂбþ¤¹¤ëÊýË¡¤ò¹Í¤¨¤Æ¤ß¤Þ¤·¤¿¤¬¡¢´Êñ¤ÊÊýË¡¤Ï»×¤¤¤Ä¤­¤Þ¤»¤ó¡£¤¤¤Ã¤¿¤ó¾¤Îʸ»úÎó¤ËÃÖ¤­´¹¤¨¤Æ¤ª¤¤¤Æ¡¢htmlspecialchars¤Î½èÍý·ë²Ì¤«¤é¡¢¸µ¤Îʸ»ú¤ËÌ᤹ÊýË¡¤¬¤¢¤ë¤È»×¤¤¤Þ¤¹¤¬¡¢ÌÌÅݤʽèÍý¤Ë¤Ê¤ê¤Þ¤¹¡£¤¢¤ë¤¤¤Ï¡¢±Æ¶Á¤ò¼õ¤±¤ëʸ»ú¤ò¿ôÃÍʸ»ú»²¾È¡Ê&#x20022;¤Ê¤É¡Ë¤ËÊÑ´¹¤·¤Æ¤ª¤¤¤Æ¡¢htmlspecialchars¤ÎÂè»Í¥Ñ¥é¥á¡¼¥¿$double_encode¤ò0¤Ë¤·¤Æ¼Â¹Ô¤¹¤ëÊýË¡¤â¤¢¤ê¤Þ¤¹¤¬¡¢$double_encode¤ò0¤Ë¤¹¤ëÉûºîÍѤ⤢¤ê¤Þ¤¹¡£¸µ¡¹¼ÂÂλ²¾È¤ä¿ôÃÍʸ»ú»²¾È¤Î·Á¤Ë¤Ê¤Ã¤Æ¤ëʸ»úÎó¤òÊÑ´¹¤·¤Ê¤¯¤Ê¤ë¤«¤é¤Ç¤¹¡£¤³¤Î¤¿¤á¸½¾õ¤Ç¤Ï¾åµ­ÌäÂê¤òµöÍÆ¤·¤¿¾å¤Ç¡¢PHP¦¤ÇÂбþ¤µ¤ì¤ë¤Î¤òÂԤä¿Êý¤¬¤è¤¤¾ì¹ç¤¬Â¿¤¤¤è¤¦¤Êµ¤¤¬¤·¤Þ¤¹¡£

¤Þ¤È¤á

PHP¤Îhtmlspecialchars¤ª¤è¤Óhtmlentities¤Ë¤Ï¡¢Unicode¤Î´ðËÜ¿¸À¸ìÌÌ (BMP)Èϰϳ°¤Îʸ»ú¤òÀµ¤·¤¯°·¤¨¤Þ¤»¤ó¡£¼¡¥Ð¡¼¥¸¥ç¥ó¡ÊPHP5.2.12¡¢PHP5.3.2¡Ë¤Ç¤Ï½¤Àµ¤µ¤ì¤ë¤È»×¤ï¤ì¤Þ¤¹¡£¤½¤ì¤Þ¤Ç¤Î´Ö¤Ï°Ê²¼¤ÎÊýË¡¤ÇÂнè²Äǽ¤Ç¤¹¡£

  • htmlentities¤Ç¤Ï¤Ê¤¯htmlspecialchars¤ò»ÈÍѤ¹¤ë
  • htmlspecialchars¤Ç¤â±Æ¶Á¤ò¼õ¤±¤ë13ʸ»ú¤Ï¸ÄÊ̤ËÂбþ¤¹¤ë¡¢¤¢¤ë¤¤¤ÏµöÍÆ¤¹¤ë

2009-10-09 [php][xss]

¡ühtmlspecialchars¤ÎShift_JIS¥Á¥§¥Ã¥¯Ï³¤ì¤Ë¤è¤ëXSS²óÈòºö

¤³¤Î¥¨¥ó¥È¥ê¤Ç¤Ï¡¢PHP¤Îhtmlspecialchars´Ø¿ô¤Îʸ»ú¥¨¥ó¥³¡¼¥Ç¥£¥ó¥°¥Á¥§¥Ã¥¯ÉÔÈ÷¤ò¤Ä¤¤¤¿¥¯¥í¥¹¥µ¥¤¥È¡¦¥¹¥¯¥ê¥×¥Æ¥£¥ó¥°(XSS)ÀȼåÀ­¤Ë¤Ä¤¤¤Æ¡¢PHP¦¤Î¥Ñ¥Ã¥Á¤¬Ä󶡤µ¤ì¤Ê¤¤¾õ¶·¤Ç¤Î²óÈòºö¤Ë¤Ä¤¤¤ÆÀâÌÀ¤·¤Þ¤¹¡£

²¿¤¬ÌäÂ꤫

PHP¤Ë¤ª¤¤¤Æ¡¢XSSÂкö¤Ë¤Ïhtmlspecialchars¤Ë¤è¤Ã¤Æµ­¹æ¤ò¥¨¥¹¥±¡¼¥×¤¹¤ë¤³¤È¤¬¹Ô¤ï¤ì¤Þ¤¹¤·¤«¤·¡¢htmlspecialchars¤òÍøÍѤ·¤Æ¤¤¤Æ¤â¡¢Shift_JIS¤ÎÀè¹Ô¥Ð¥¤¥È¤òÍøÍѤ·¤Æ¡¢XSS¤¬È¯À¸¤¹¤ë¾ì¹ç¤¬¤¢¤ê¤Þ¤¹¡£

Î㤨¤Ð¡¢°Ê²¼¤Î¤è¤¦¤ÊINPUT¤¬¤¢¤ê¡¢³°Éô¤«¤é°À­ÃͤòÊѹ¹¤Ç¤­¤ë²Õ½ê¤¬2¥«½ê°Ê¾å¤¢¤ë(°Ê²¼¤ÎÎã¤Ç¤Ï¡¢AAA¤ÈBBB)¤È¤·¤Þ¤¹¡£

<INPUT name="AAA" value="BBB">

¤³¤³¤Ç¡¢AAA¤ÈBBB¤Ë¤½¤ì¤¾¤ì°Ê²¼¤Î¤è¤¦¤ÊÃͤòÍ¿¤¨¤Þ¤¹¡£Ê¸»ú¥¨¥ó¥³¡¼¥Ç¥£¥ó¥°¤ÏShift_JIS¤È¤·¤Þ¤¹¡£

AAA: %F1
BBB: onmouseover%3dalert(document.cookie);//

¤³¤Î¾ì¹ç¡¢\xF1¤È¸å³¤Î¡Ö"¡×¤¬¡¢¹ç¤ï¤»¤Æ°ìʸ»ú¤È¸«¤Ê¤µ¤ì¡Ê¡Ö¢£¡×¤Çɽ¤·¤Þ¤¹¡Ë°Ê²¼¤Î¤è¤¦¤ÊHTML¤¬Í¿¤¨¤é¤ì¤¿¤È¥Ö¥é¥¦¥¶¤Ë¤è¤êǧ¼±¤µ¤ì¤Þ¤¹¡£

<INPUT name="¢£ value="onmouseover=alert(document.cookie);//">

¤¹¤Ê¤ï¤Á¡¢value=¤ÇÍ¿¤¨¤¿¤Ï¤º¤Î¡Öonmouseover=...¡×¤¬Â°À­Ãͤò¤Ï¤ß½Ð¤·¡¢¥¤¥Ù¥ó¥È¥Ï¥ó¥É¥é¤È¸«¤Ê¤µ¤ì¤Þ¤¹¡£¤³¤ì¤Ë¤è¤ê¡¢XSS¤¬È¯À¸¤¹¤ë¤È¸À¤¦ÌäÂê¤Ç¤¹¡£

°ìÈÌŪ¤Ë¡¢¤³¤Î¤è¤¦¤Ê¡ÖShift_JIS¤ÎÀè¹Ô¥Ð¥¤¥È¡×¤òÍѤ¤¤¿XSS¤Ï¡¢\xF1°Ê³°¤Ë¤â¡¢0x81¡Á0x9F¤ª¤è¤Ó0xE0¡Á0xFC¤ÎÈϰϤΥХ¤¥È¤¬»ÈÍѤǤ­¤Þ¤¹¡£htmlspecialchars¡ÊPHP5.2.5°Ê¹ß¡Ë¤Ï¡¢¤³¤ì¤éñÆÈ¤ÎÀè¹Ô¥Ð¥¤¥È¤ò¥Á¥§¥Ã¥¯¤·¤Þ¤¹¤¬¡¢¤Ê¤¼¤«0xF0¡Á0xFC¤Ë¤Ä¤¤¤Æ¤Ï¥Á¥§¥Ã¥¯¤µ¤ì¤ºÁÇÄ̤·¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£¤³¤Î¥Á¥§¥Ã¥¯¤â¤ì¤¬ÌäÂê¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£

º£¤Þ¤Ç¤Îή¤ì

ºÇ¶á¤³¤ÎÌäÂ꤬ÏÃÂê¤Ë¤Ê¤Ã¤Æ¤¤¤ëή¤ì¤ò»þ·ÏÎó¤Ë¼¨¤·¤Þ¤¹¡£

  1. ¸µ¡¹¡¢htmlspecialchars¤Ïʸ»ú¥¨¥ó¥³¡¼¥Ç¥£¥ó¥°¤ÎÂÅÅöÀ­¥Á¥§¥Ã¥¯¤ò¤Û¤È¤ó¤É¹Ô¤Ã¤Æ¤¤¤Þ¤»¤ó¤Ç¤·¤¿¡£¤½¤ÎÅö»þ¤Î»ö¾ð¤Ï¡¢»ûÅĤµ¤ó¤ÎÄ´ºº¡Öhtmlspecialchars¤ÈÉÔÀµ¤Êʸ»ú¤ÎÏáפ˾ܤ·¤¯½ñ¤«¤ì¤Æ¤¤¤Þ¤¹¡£
  2. ¤½¤Î¸å¡¢ºÇ¶á¤Ë¤Ê¤Ã¤Æ¡¢¡ÖPHP5.2.5°Ê¹ß¤Ç¤Ïʸ»ú¥¨¥ó¥³¡¼¥Ç¥£¥ó¥°¤Î¥Á¥§¥Ã¥¯¤¬Æþ¤Ã¤Æ¤¤¤ë¤±¤É¡¢¤Á¤ç¤Ã¤ÈÃæÅÓȾü¤À¡×¤È¤¤¤¦Ä´ºº·ë²Ì¤ò»ä¤¬¡Öhtmlspecialchars¤ÏÉÔÀµ¤Êʸ»ú¥¨¥ó¥³¡¼¥Ç¥£¥ó¥°¤ò¤É¤³¤Þ¤Ç¥Á¥§¥Ã¥¯¤¹¤ë¤«¡×¤Ë¤Æ»ØÅ¦¤·¤Þ¤·¤¿¡£
  3. ¤³¤Î¥Ö¥í¥°¤Ç¡¢¡ÖXSS¤Î¹¶·â¤ËÂФ¹¤ëÈ´¤±¤¬À¸¤¸¤ë¤«¤È¸À¤¨¤Ð¡¢ÆÍÇˤÎÊýË¡¤Ï¤Á¤ç¤Ã¤È»×¤¤¤Ä¤­¤Þ¤»¤ó¡×¤È½ñ¤¤¤Æ¤¤¤¿¤È¤³¤í¡¢id:t_komura¤µ¤ó¤¬¡ÖShift_JIS ¤Ç¤Ï¡¢htmlspecialchars() ¤ò»ÈÍѤ·¤Æ¤â XSS ¤¬²Äǽ¤Ê¾ì¹ç¤¬¤¢¤ë¡×¤Ë¤Æ¡¢¤½¤ÎÆÍÇËÊýË¡¤òÊó¹ð¤·¤Æ²¼¤µ¤Ã¤Æ¤¤¤Þ¤¹¡£
  4. ¤³¤ì¤ËÂФ·¤Æ¡¢id:IwamotoTakashi¤µ¤ó¤¬¡¢¡Öhtmlspecialchars¤Î¥Ñ¥Ã¥Á»ä°Æ¡×¤Ë¤ÆÂкö¥Ñ¥Ã¥Á¤ò¸ø³«¤µ¤ì¡¢¥Ð¥°¥ì¥Ý¡¼¥È¤òÄó½Ð¤µ¤ì¤Þ¤·¤¿¤¬¡¢¡Öhtmlspecialchars¤Ë´Ø¤¹¤ë»Äǰ¤Ê¤ªÃΤ餻¡×¤ÇÊó¹ð¤µ¤ì¤Æ¤¤¤ë¤è¤¦¤Ë¡¢¸½»þÅÀ¤Ç¤ÏPHP³«È¯¥Á¡¼¥à¤«¤éµÑ²¼¤µ¤ì¤Æ¤¤¤ë¾õ¶·¤Ç¤¹¡£
  5. ¤³¤Î¤¢¤¿¤ê¤«¤é¡¢°ìÏ¢¤Îή¤ì¤¬¹­¤¯ÃΤé¤ì¤ë¤è¤¦¤Ë¤Ê¤Ã¤Æ¡¢¡Ö¤â¤Ã¤È¸ú²ÌŪ¤ÊÁʵáÊýË¡¤¬¤¢¤ë¤è¡×¤È¤«¡¢³¤Ï·¸¶¹·Ê夵¤ó¤«¤é¤â¥Ð¥°¥ì¥Ý¡¼¥È¤¬Åê¹Æ¤µ¤ì¤ë¤Ê¤É¤ÎƯ¤­¤«¤±¤¬»Ï¤Þ¤Ã¤Æ¤¤¤ë¤è¤¦¤Ç¤¹¡£³¤Ï·¸¶¤µ¤ó¤Î¥ì¥Ý¡¼¥È¤Ë¤Ï»ä¤Î¥¨¥ó¥È¥ê¤â±ÑÌõ¤µ¤ì¤Æ¤¤¤Æ¡¢ËÜÅö¤Ë¤¢¤ê¤¬¤È¤¦¤´¤¶¤¤¤Þ¤¹¡£
  6. ¤µ¤Æ¡¢PHPËÜÂΤ¬½¤Àµ¤µ¤ì¤ë¤Î¤¬°ìÈ֤褤¤Î¤Ç¤¹¤¬¡¢¤³¤Î¥¨¥ó¥È¥ê¤Ç¤Ï¡¢PHP¦¤Î½¤ÀµÁ°¤Ë¡¢¤É¤Î¤è¤¦¤Ë¤³¤ÎÌäÂê¤ËÂкö¤¹¤ì¤Ð¤è¤¤¤«¤òÀâÌÀ¤·¤Þ¤¹¡Ê¢«¥¤¥Þ¥³¥³¡Ë

ÌäÂ꤬ȯÀ¸¤¹¤ë¾ò·ï

¹¬¤¤¤Ê¤³¤È¤Ë¡¢¤³¤ÎÌäÂ꤬ȯÀ¸¤¹¤ë¤¿¤á¤Ë¤Ï¡¢¿§¡¹¾ò·ï¤¬¤Ä¤­¤Þ¤¹¡£¤½¤ì¤ò°Ê²¼¤Ë¼¨¤·¤Þ¤¹¡£¤¹¤Ù¤ÆAND¾ò·ï¤Ç¤¹¡£

  1. PHP¤¬ÆâÉô¤Ç°·¤¦Ê¸»ú¥¨¥ó¥³¡¼¥Ç¥£¥ó¥°¤¬Shift_JIS¤Ç¤¢¤ë
  2. ÆþÎϤ«¤é½ÐÎϤޤǤβáÄø¤Çʸ»ú¥¨¥ó¥³¡¼¥Ç¥£¥ó¥°¤¬ÊÑ´¹¤µ¤ì¤Ê¤¤
  3. ÆþÎÏÃͤΥХê¥Ç¡¼¥·¥ç¥ó¤È¤·¤ÆÊ¸»ú¥¨¥ó¥³¡¼¥Ç¥£¥ó¥°¤ò¸¡ºº¤·¤Æ¤¤¤Ê¤¤

¤¹¤Ê¤ï¤Á¡¢1.¤È2.¤ò¹ç¤ï¤»¤Þ¤¹¤È¡¢Æþ¸ý¡¦½èÍý¡¦½Ð¸ý¤Þ¤Ç°ì´Ó¤·¤ÆShift_JIS¤Ç°·¤Ã¤Æ¤¤¤ë¡¢¤È¤¤¤¦¾ò·ï¤¬¹¶·â¤Ë¤Ïɬ¿Ü¤È¤¤¤¦¤³¤È¤Ë¤Ê¤ê¤Þ¤¹¡£

Æþ¸ý(HTTP Request)¤È½Ð¸ý(HTTP Response)¤¬Shift_JIS¤È¤¤¤¦¥µ¥¤¥È¤ÏÄÁ¤·¤¯¤Ê¤¯¤Æ¡¢¥±¡¼¥¿¥¤¥µ¥¤¥È¤ÏÂçÄñ¤³¤¦¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£ÌäÂê¤Ï¡¢ÆâÉô½èÍý¤¬Shift_JIS¤È¤¤¤¦¤È¤³¤í¤Ç¤¹¡£PHP¤ÏShift_JIS¤Îʸ»úÎó¥ê¥Æ¥é¥ë¤ò¤¦¤Þ¤¯°·¤¨¤Ê¤¤¤Î¤Ç¡¢¤¤¤ï¤æ¤ë5CÌäÂ꤬ȯÀ¸¤·¤Þ¤¹¡£¤½¤Î¤¿¤á¡¢¡ÖPHP¤ÎÆâÉô¥¨¥ó¥³¡¼¥Ç¥£¥ó¥°¤Ç¤ÏShift_JIS¤òÈò¤±¤è¤¦¡×¤È¤¤¤¦¥Î¥¦¥Ï¥¦¤¬¤«¤Ê¤êÉáµÚ¤·¤Æ¤¤¤ë¤Î¤Ç¤Ï¤Ê¤¤¤«¤È»×¤¤¤Þ¤¹¡£¤³¤Î¤¢¤¿¤ê¤Î¾Ü¤·¤¤ÀâÌÀ¤Ï¡¢¡ÖShift_JIS¤òÍøÍѤ¹¤ë¤³¤È¤ÎÀ§Èó¡×¤ä¡ÖÂè8²ó¢£¼çÍ׸À¸ì¤Îʸ»ú¥¨¥ó¥³¡¼¥Ç¥£¥ó¥°¤ÎÂбþ¾õ¶·¤ò²¡¤µ¤¨¤ë(ITpro)¡×¤ò¤´Í÷²¼¤µ¤¤¡£

´û¸¥µ¥¤¥È¤Î²óÈòºö

´û¸¥µ¥¤¥È¤Ç¡¢°ì´Ó¤·¤ÆShift_JIS¤Ç½èÍý¤·¤Æ¤¤¤ë¾ì¹ç¤â¤ä¤Ï¤ê¤¢¤ë¤Ç¤·¤ç¤¦¡£¤½¤Î¾ì¹ç¤Ë¤É¤¦¤³¤ÎÌäÂê¤ËÂн褹¤ì¤Ð¤è¤¤¤Ç¤·¤ç¤¦¤«¡£

´û¤Ë²ÔƯ¤·¤Æ¤¤¤ë¥µ¥¤¥È¤Îʸ»ú¥¨¥ó¥³¡¼¥Ç¥£¥ó¥°¤òÊѹ¹¤¹¤ë¤È¤Ê¤ë¤È¡¢²þ½¤¤â¤µ¤ë¤³¤È¤Ê¤¬¤é¡¢¥µ¥¤¥ÈÁ´ÂΤËÂФ¹¤ë¥Æ¥¹¥È¤ò¤·¤Ã¤«¤ê¤ä¤é¤Ê¤¤¤È¤¤¤±¤Ê¤¤¤Î¤Ç¡¢¤½¤¦´Êñ¤Ë¤Ï¤Ç¤­¤Ê¤¤¤Ç¤·¤ç¤¦¡£¤Þ¤¿¡¢Ê¸»ú¥¨¥ó¥³¡¼¥Ç¥£¥ó¥°¤Î¥Ð¥ê¥Ç¡¼¥·¥ç¥ó½èÍý¤òÄɲ乤ë¤Î¤Ï¡¢¤È¤Æ¤â¤è¤¤¤³¤È¤Ç¤Ï¤¢¤ê¤Þ¤¹¤¬¡¢¤ä¤Ï¤ê¥³¡¼¥É¤Î²þ½¤¡¦Äɲäȥƥ¹¥È¤¬ÂçÊѤǤ¹¡£

ºÇ½ªÅª¤Ë¤Ïʸ»ú¥¨¥ó¥³¡¼¥Ç¥£¥ó¥°¤Î¥Ð¥ê¥Ç¡¼¥·¥ç¥ó½èÍý¤ÎÄɲäò¿ä¾©¤·¤Þ¤¹¤¬¡¢¤½¤ì¤¬¤¹¤°¤Ë¤Ç¤­¤Ê¤¤¾ì¹ç¤Î»ÃÄêÂбþ¤È¤·¤Æ¡¢Æþ¸ý¤ÇShift_JIS¢ªShift_JIS¤ÎÊÑ´¹¤ò¤¹¤ë¡¢¤È¤¤¤¦ÊýË¡¤¬¤¢¤ê¤Þ¤¹¡£php.ini¤Ë°Ê²¼¤Î¤è¤¦¤ÊÀßÄê¤ò¤¹¤ë¤³¤È¤Ë¤è¤ê¡¢ÆþÎϥǡ¼¥¿¤òShift_JIS¢ªShift_JIS¤ÎÊÑ´¹¤ò»Ø¼¨¤·¤Þ¤¹¡£

[mbstring]
mbstring.language = Japanese
mbstring.internal_encoding = sjis-win
mbstring.http_input = sjis-win
mbstring.http_output = sjis-win
mbstring.encoding_translation = On

Shift_JIS¢ªShift_JIS¤ÎÊÑ´¹¤È¤¤¤¦¤È¡¢²¿¤â¤·¤Ê¤¤¤Î¤Ç¤Ï¤Ê¤¤¤«¤È»×¤ï¤ì¤ë¤«¤â¤·¤ì¤Þ¤»¤ó¤¬¡¢¤³¤Î»ØÄê¤Ë¤è¤ê¡¢ÉÔÀµ¤ÊShift_JIS¤ËÁêÅö¤¹¤ë¥Ð¥¤¥È¤Ï½üµî¤µ¤ì¤Þ¤¹¡£¤³¤Î¤¿¤á¡¢Shift_JIS¤ÎÀè¹Ô¥Ð¥¤¥È¤ò»ÈÍѤ·¤¿XSS¹¶·â¤âËɻߤ¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£

PHP¤Ë¤è¤ë¥¢¥×¥ê¥±¡¼¥·¥ç¥ó³«È¯¤Ë¡¢¤½¤â¤½¤âShift_JIS¤ò»È¤¦¤³¤È¼«ÂΤ¬¹¥¤Þ¤·¤¯¤¢¤ê¤Þ¤»¤ó¤Î¤Ç¡¢¤¢¤¯¤Þ¤Ç»ÃÄêŪ¡¦¶ÛµÞ¤ËÌäÂê¤ò²óÈò¤¹¤ë¤¿¤á¤Î¼êË¡¤È¤·¤Æ¾Ò²ð¤·¤Þ¤¹¡£¤Þ¤¿¡¢ÀßÄêÊѹ¹¸å¤Ï¥µ¥¤¥È¤Îưºî¸¡¾Ú¤ò¹Ô¤Ã¤Æ²¼¤µ¤¤¡£

¿·µ¬³«È¯¤¹¤ë¾ì¹ç¤Ï¤É¤¦¤«

¤³¤ì¤«¤é¿·µ¬³«È¯¤¹¤ë¥µ¥¤¥È¤Î¾ì¹ç¤Ï¤É¤¦¤Ç¤·¤ç¤¦¤«¡£¤³¤Î¾ì¹ç¤Ï¡¢¤¼¤Ò°Ê²¼¤ÎÆóÅÀ¤ò¼Â»Ü¤·¤Æ²¼¤µ¤¤

  1. ¥¢¥×¥ê¥±¡¼¥·¥ç¥ó»ÅÍͤȤ·¤ÆÅ¬ÀÚ¤Êʸ»ú¥¨¥ó¥³¡¼¥Ç¥£¥ó¥°¤òÁªÂò¤¹¤ë
  2. ʸ»ú¥¨¥ó¥³¡¼¥Ç¥£¥ó¥°¤Î¥Ð¥ê¥Ç¡¼¥·¥ç¥ó¤ò¼Â»Ü¤¹¤ë

¤³¤ì¤é¤ÎÆâÍÆ¤Ï´û¤ËITpro¤Ë¾Ü¤·¤¯½ñ¤¤¤Æ¤¤¤Þ¤¹¤Î¤Ç¡¢¤½¤Á¤é¤ò»²¾È¤·¤Æ²¼¤µ¤¤¡£

¤Þ¤¿¡¢¤³¤ì¤é¤Î²ó¤ËÀèΩ¤Á¡¢¤Ê¤¼¤½¤¦¤¹¤Ù¤­¤«¤âÀâÌÀ¤·¤Æ¤¤¤ë¤Î¤Ç¹ç¤ï¤»¤Æ¤´Í÷¤¤¤¿¤À¤±¤ì¤Ð¤È»×¤¤¤Þ¤¹¡£

¤Þ¤È¤á

PHP¤Îhtmlspecialchars¤¬Shift_JIS¤ÎÀè¹Ô¥Ð¥¤¥È¤ò¤­¤Á¤ó¤È¥Á¥§¥Ã¥¯¤·¤Æ¤¤¤Ê¤¤¤¿¤á¤Ë¡¢È¾Ã¼¤ÊÀè¹Ô¥Ð¥¤¥È¤ò°­ÍѤ·¤¿XSS¤¬²Äǽ¤È¤Ê¤ë¤³¤È¤¬»ØÅ¦¤µ¤ì¤Æ¤¤¤Þ¤¹¡£¤³¤ì¤ËÂФ·¤Æ¡¢ÌäÂ꤬ȯÀ¸¤¹¤ë¾ò·ï¤È¡¢»ÃÄêŪ¤ÊÂкö¡¢º¬ËÜŪ¤ÊÂкö¤òÀâÌÀ¤·¤Þ¤·¤¿¡£

ʸ»ú¥¨¥ó¥³¡¼¥Ç¥£¥ó¥°¤ÎÌäÂê¤Ï¡¢¸å¤«¤éÂкö¤·¤è¤¦¤È¤¹¤ë¤È¤ä¤Ã¤«¤¤¤Ç¤¹¤¬¡¢¾åή¹©Äø¤Ç¹Íθ¤·¤Æ¤ª¤±¤ÐÂçÉý¤ËÏ«ÎϤòºï¸º¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£¤³¤Îµ¡²ñ¤Ë¡¢Ê¸»ú¥¨¥ó¥³¡¼¥Ç¥£¥ó¥°¤ÎÌäÂê¤Ë´Ø¿´¤ò»ý¤Ã¤Æ¤¤¤¿¤À¤±¤ì¤Ð¹¬¤¤¤Ç¤¹¡£

[PR]Web¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Î¥»¥­¥å¥ê¥Æ¥£Âкö¤ÏHASH¥³¥ó¥µ¥ë¥Æ¥£¥ó¥°¤Þ¤Ç

ËÜÆü¤Î¥Ä¥Ã¥³¥ß(Á´1·ï) [¥Ä¥Ã¥³¥ß¤òÆþ¤ì¤ë]

¡ú ³¤Ï·¸¶¹·Êå [¤´¾Ò²ð¤¤¤¿¤À¤¤¤Æ¤¢¤ê¤¬¤È¤¦¤´¤¶¤¤¤Þ¤¹¡£º£²óËͤ¬¹Ôư¤Ç¤­¤¿¤Î¤â¡¢ÆÁ´Ý¤µ¤ó¤Î¤ï¤«¤ê¤ä¤¹¤¤¥¨¥ó¥È¥ê¤¬¤¢¤Ã¤Æ¤³¤½¤Ç¤¹¡£¤³¤Á¤é..]


¥È¥Ã¥× Äɵ­