 |
|
|  |
PHP ÀÎÁ§¼Ç°ú file get contentsÀÇ °ü°è |
|
|
 |
9³â Àü |
ÃÖ±Ù À¥È£½ºÆÃÀ» »ç¿ëÇÏ´Â ÇÑ »çÀÌÆ®¿¡¼ ¶È°°Àº ÇÁ·Î±×·¥ÀÓ¿¡µµ ºÒ±¸ÇÏ°í ±â´ÉÀÌ Àß µ¿ÀÛÇÏÁö ¾Ê´Â ´Ù´Â À̾߱⸦ µè°í °£´ÜÇÏ°Ô ¸î°¡Áö Á¶»çÇØ º¸´Ï file_get_contents() ÇÔ¼ö°¡ Á¤»óÀûÀÎ µ¿ÀÛÀ» ÇÏÁö ¾Ê´õ±º¿ä. file_get_contents() ÇÔ¼ö´Â ÆĶó¹ÌÅÍ·Î ¿ÜºÎ »çÀÌÆ®ÀÇ URLÀ» ÀÔ·ÂÇϸé ÇØ´ç ÆäÀÌÁöÀÇ ³»¿ëÀ» °¡Á®¿Í¼ ¹®ÀÚ¿·Î ¸®ÅÏÇØ ÁÖ´Â °³¹ßÀÚ ÀÔÀå¿¡¼´Â ¸Å¿ì À¯¿ëÇÑ ÇÔ¼öÀε¥ ÇØÄ¿µéÀÌ ÀÌ·± ÇÔ¼ö¸¦ ÅëÇؼ ÀÎÁ§¼Ç(Injection) °ø°ÝÀ» ¼öÇàÇϱ⠶§¹®¿¡ PHP ¼³Á¤Áß¿¡ allow_url_fopen¸¦ 0À¸·Î ¼³Á¤Çؼ fopen(), file(), file_get_contents() µîÀÇ ÇÔ¼ö¿¡¼ ¿ÜºÎ URLÀ» »ç¿ëÇÒ ¼ö ¾øµµ·Ï ÇÑ´Ù´Â À̾߱⠿´½À´Ï´Ù. ÇØ´ç ÇÔ¼ö »ç¿ë °úÁ¤¿¡ À§Ç輺ÀÌ ÀÖ´ÂÁö °ËÁõÇؼ ±¦Ã¯´Ù°í ÆÇ´ÜÇÏ°í »ç¿ëÇÏ°íÀÚ ÇÏ´õ¶óµµ Ä«Æä24(cafe24) µîÀÇ À¥È£½ºÆÃÀ» »ç¿ëÇÑ´Ù¸é »ç¿ëÀÚ°¡ ¼³Á¤À» ¼öÁ¤ÇÒ ¼ö ÀÖµµ·Ï ±â´ÉÀ» Á¦°øÇÏÁö ¾Ê±â ¶§¹®¿¡ ÀÌ·± °æ¿ì¿¡´Â ¾Æ·¡¿Í °°Àº Äڵ带 »ðÀÔÇؼ ½ÇÇà °úÁ¤Áß¿¡ ¼³Á¤À» º¯°æ Àû¿ëÇÒ ¼ö´Â ÀÖ½À´Ï´Ù.
@ini_set("allow_url_fopen","1");
ÀÌ¿Õ ÀÎÁ§¼Ç °ø°Ý¿¡ ´ëÇÑ À̾߱Ⱑ ³ª¿ÔÀ¸¹Ç·Î PHP ȯ°æÀÇ ÀÎÁ§¼Ç °ø°Ý°ú file_get_contents() ÇÔ¼öÀÇ °ü°è¸¦ ÅëÇؼ ¿©·¯ °ø°Ý ÇüŸ¦ »ìÆ캸°í ¼Ò½º Äڵ忡¼ ¾î¶»°Ô ´ëºñÇØ¾ß µÉÁö »ìÆ캼±î ÇÕ´Ï´Ù.
ÀÎÁ§¼Ç °ø°ÝÀº À¥ Ŭ¶óÀ̾ðÆ®(ºê¶ó¿ìÀú)¿¡¼ À¥¼¹ö(¾ÆÆÄÄ¡, IIS µîµî)·Î Á¤º¸¸¦ Àü¼ÛÇÏ´Â °úÁ¤¿¡ ÀÓÀÇÀÇ µ¥ÀÌÅ͸¦ »ðÀÔÇؼ À¥¼¹ö °³¹ßÀÚ°¡ ÀǵµÇÏÁö ¾ÊÀº ´ë·Î Äڵ带 µ¿ÀÛ½ÃÄѼ °ø°ÝÀÚÀÇ Àǵµ¸¦ ÀÌ·ç°Å³ª ½Ã½ºÅÛ¿¡ ¼Õ»óÀ» °¡ÇÏ´Â ÀÏ·ÃÀÇ ÇàÀ§¸¦ ÁöĪÇÕ´Ï´Ù. Cross-Site Scripting(XSS), SQL ÀÎÁ§¼Ç, ÄÚµå(Code) ÀÎÁ§¼Ç, ·Î±×(Log) ÀÎÁ§¼ÇµîÀÌ ÀÌ ¹üÁÖ¿¡ Æ÷ÇԵ˴ϴÙ.
¡á Å©·Î½º »çÀÌÆ® ½ºÅ©¸³ÆÃ(Cross-Site Scripting, XSS)
¸¹Àº À¥»çÀÌÆ®¿¡¼ °¡Àå ¸¹ÀÌ ´çÇÏ´Â °ø°Ý ÇüÅÂÀÌ°í º¸¾È Ãë¾à¼º Á¡°ËÅø¿¡¼µµ °¡Àå ¸¹ÀÌ °ËÃâÇس»´Â °ø°Ý ¹æ½ÄÀÔ´Ï´Ù. ´Ü¼øÈ÷ Á¤Àû HTML ÆäÀÌÁö¸¸ º¸¿©ÁÖ´Â À¥¼¹ö¶ó¸é °ø°ÝÀ» ¹ÞÀ» °¡´É¼ºÀÌ ¸Å¿ì ³·Àº ¹æ½ÄÀ¸·Î ¸¹Àº °æ¿ì ÅؽºÆ® ÀÔ·Â Ç׸ñµî¿¡ HTMLÀ̳ª ÀÚ¹Ù ½ºÅ©¸³Æ®(Java Script), CSS ¸¶Å©¾÷À» »ðÀÔÇؼ ±× ³»¿ëÀ» À¥¼¹ö¿¡¼ ´Ù½Ã °á°ú ÆäÀÌÁö·Î ³»·ÁÁÙ¶§ ÀÔ·Â ³»¿ëÀÌ ´Ü¼ø ÀÔ·Â ³»¿ëÀÌ ¾Æ´Ï¶ó °ø°ÝÀÚÀÇ Àǵµ¿¡ µû¶ó µ¿ÀÛÇÏ°Ô ÇÏ´Â °ø°Ý ¹æ½ÄÀÔ´Ï´Ù. À¥ ºê¶ó¿ìÀú¿¡¼ µ¿ÀÛÇÏÁö¸¸ ÀûÀýÇÑ ´ëºñ¸¦ ÇÏÁö ¸øÇÏ¸é ¸¹Àº »ç¿ëÀÚ¿¡°Ô Æı޵Ǵ Æø¹ß·ÂÀÌ Àֱ⠶§¹®¿¡ ¸Å¿ì ÁÖÀÇÇØ¾ß ÇÕ´Ï´Ù.
»ç¿ëÀÚ°¡ ÀÚ¹Ù ½ºÅ©¸³Æ®¸¦ ÀÔ·ÂÇÒ ¼ö ÀÖ´Â Åë·Î°¡ ÀÖ´Ù¸é °ø°ÝÀÚ´Â document.write()¿Í °°Àº ÀÚ¹Ù ½ºÅ©¸³Æ® ÇÔ¼ö¸¦ ÅëÇؼ À¢¸¸ÇÑ µ¿Àû ÆäÀÌÁö¸¦ À¥ºê¶ó¿ìÀú¿¡ ±¸µ¿½Ãų ¼ö ÀÖ°í, document.cookie.escape()¿Í °°Àº ÇÔ¼ö¸¦ ÅëÇؼ »ç¿ëÀÚ Á¤º¸¸¦ »©°¥ ¼öµµ ÀÖ½À´Ï´Ù. AJAX ȯ°æÀÌ ÀÖ´Ù¸é Á¤º¸ À¯Ãâ°ú °ø°Ý¿¡ ³¯°³¸¦ ´Þ¾ÆÁÖ´Â °ÝÀÌ µÇ°í ¸¿´Ï´Ù. ¼¹ö·Î ºÎÅÍ ³»·Á¿Â ÆäÀÌÁö °á°ú´Â À¥ ºê¶ó¿ìÀúÀÇ ÀÔÀå¿¡¼ º¸¸é ½Å·ÚÇÒ ¸¸ÇÑ ³»¿ëÀ̱⠶§¹®ÀÔ´Ï´Ù.
´ëºñÃ¥ÀÇ Ã¹¹ø°´Â öÀúÇÑ ÀÔ·Â °Ë»ç·Î ½ÃÀÛÇÕ´Ï´Ù. À̸§À̳ª Á÷¾÷¶õ¿¡ HTML ű׸¦ ÀÔ·ÂÇÒ ¼ö ¾øµµ·Ï Á¦ÇÑÇÏ´Â °Í°ú °°½À´Ï´Ù. °Ô½ÃÆÇÀÇ ³»¿ë ÀԷ¶õÀÇ °æ¿ìó·³ ÀÚÀ¯·Î¿î ÀÔ·ÂÀ» ¹Þ´Â °æ¿ì¿¡µµ HTML ÅÂ±×¿Í ÀÚ¹Ù ½ºÅ©¸³Æ®¸¦ ±ÝÁö ½ÃÅ°°Å³ª Á¦ÇÑµÈ »ç¿ëµÈ Çã¿ëÇÏ´Â ¹æ½ÄÀ¸·Î ÀÔ·Â °Ë»ç ½ÃÁ¡ ºÎÅÍ ÇÊÅ͸µÇÒ ÇÊ¿ä°¡ ÀÖ½À´Ï´Ù. ¹®Á¦¼ºÀÌ ÀÖ´Â ÀÔ·Â µ¥ÀÌÅ͸¦ ¿À·ù ¸Þ½ÃÁö¿Í ÇÔ²² ±×´ë·Î Ãâ·ÂÇعö¸®¸é ÀÌ ¶ÇÇÑ °ø°ÝÀÚµéÀÌ ¿øÇÏ´Â °ÍÀ̹ǷΠÀÎÄÚµù(Encoding) ¶Ç´Â ¿¡½ºÄÉÀÌÇÁ(Esacpe) ±â´ÉÀ» ÀûÀýÇÏ°Ô »ç¿ëÇØ¾ß ÇÕ´Ï´Ù. ¿¹¸¦ µé¾î ÀÚ¹Ù½ºÅ©¸³Æ®³ª HTML ű׸¦ Ç¥½ÃÇÏ´Â '<' , '>' ¹®ÀÚ¸¦ > <µîÀ¸·Î ¹Ù²Ù¾î¼ À¥ ºê¶ó¿ìÀú¿¡¼´Â ÀÔ·ÂÇÑ µ¥ÀÌÅ͸¦ »ðÀÔÇÑ Äڵ尡 ¾Æ´Ï¶ó ´Ü¼ø ÅؽºÆ®·Î Ãë±ÞÇϵµ·Ï ÇÒ ¼ö ÀÖ½À´Ï´Ù. µû¿ÈÇ¥¸¦ Æ÷ÇÔÇÏ¿© HTML·Î »ç¿ëÇÏ´Â ¿©·¯ Ư¼ö ¹®ÀÚ¸¦ À¯»çÇÑ ¹æ½ÄÀ¸·Î ÀÎÄÚµùÇÏ·Á¸é htmlspecialchars() htmlentities() ÇÔ¼ö¸¦ ÂüÁ¶ÇÕ´Ï´Ù. ÀÔ·Â ÀڷḦ ÀÎÄÚµù ó¸®Çؼ Ãâ·ÂÇϰųª ¹®Á¦ ÀÖ´Â ºÎºÐÀ» »èÁ¦ÇϵçÁö ²À ÇÊ¿äÇÑ °ÍÀº ÀÔ·Â Àǵµ¿¡ ¸Â´Â µ¥ÀÌÅÍÀÎÁö ¹Ýµå½Ã öÀúÇÑ °Ë»ç¸¦ ¼öÇàÇØ¾ß ÇÑ´Ù´Â °ÍÀÔ´Ï´Ù. À¥ ºê¶ó¿ìÀúÀÇ ¹öÀü¿¡ µû¶ó ¾à°£ÀÇ Â÷ÀÌ°¡ ÀÖÁö¸¸ HTML Çì´õ¿¡ Content Security Policy (CSP) ¸ÞŸ ű׸¦ È°¿ëÇؼ ÇöÀç ÆäÀÌÁö¿¡¼ ´Ù¸¥ ÆäÀÌÁö·Î ¿¬µ¿ÇÒ ¼ö ÀÖ´Â ½Å·ÚÇÒ ¼ö ÀÖ´Â »çÀÌÆ®¸¦ ÁöÁ¤ÇÏ´Â °Íµµ ¶Ç´Ù¸¥ ¿¹¹æÃ¥ÀÇ ÇϳªÀÔ´Ï´Ù. ¾ö¹ÐÈ÷ ¸»Çϸé XSS °ø°ÝÀº PHP°¡ ¾Æ´Ñ ´Ù¸¥ À¥ ½ºÅ©¸³Æ® ¾ð¾î¸¦ »ç¿ëÇÏ´õ¶óµµ µ¿ÀÏÇÏ°Ô ´ë¸éÇÒ ¼ö ¹Û¿¡ ¾ø´Â À§ÇùÀÔ´Ï´Ù.
¡á SQL ÀÎÁ§¼Ç
APM(Apache, PHP, MySQL) ȯ°æ¿¡¼ ºó¹øÇÏ°Ô ³ëÃâµÇ´ø À§ÇùÀÔ´Ï´Ù. »ç¿ëÀÚ°¡ ÀÔ·ÂÇÑ ÀڷḦ ±â¹ÝÀ¸·Î µ¥ÀÌÅͺ£À̽º¿¡ ÁúÀǸ¦ ¼öÇàÇÏ´Â °úÁ¤¿¡¼ µ¥ÀÌÅͺ£À̽º ÁúÀǸ¦ À§ÇÑ SQL¿¡ ºñÁ¤»óÀûÀÎ µ¥ÀÌÅ͸¦ »ðÀÔÇؼ ½Ã½ºÅÛ¿¡ ¼Õ»óÀ» °¡Çϰųª ºñÁ¤»óÀûÀ¸·Î ·Î±×ÀÎ ±ÇÇÑÀ» ÃëµæÇؼ Á¤º¸¸¦ À¯Ãâ½ÃÅ°°Å³ª ½Ã½ºÅÛÀ» ºñÁ¤»óÀûÀ¸·Î »ç¿ëÇÏ´Â °ø°ÝÀÔ´Ï´Ù.
$db->query( "SELECT * FROM members WHERE user_id = ". $_POST['user_id']);
¿¹¸¦ µé¾î À§¿Í °°Àº ·Î±×ÀÎ °Ë»ç ·ÎÁ÷ÀÌ ÀÖ´Ù¸é Á¤»óÀûÀÎ °æ¿ì¿¡´Â µ¥ÀÌÅͺ£À̽º¿¡ ÀúÀåµÇ¾î ÀÖ´Â »ç¿ëÀÚ ¾ÆÀ̵𸦠Á¤È®ÇÏ°Ô ÀÔ·ÂÇØ¾ß µÇÁö¸¸ ¾ÆÀ̵𸦠¸ô¶óµµ user_id Ç׸ñ¿¡ "1 or 1" ·Î ÀÔ·ÂÇÏ¸é ½ÇÁ¦ SQL ¹®ÀåÀº "WHERE user_id = 1 or 1"·Î µÇ¾î WHERE ±¸ÀýÀº Ç×»ó Âü(True)ÀÎ »óÅ°¡ µË´Ï´Ù. ÀÌ·¯ÇÑ ¹æ½ÄÀ¸·Î °ü¸®ÀÚ ±ÇÇÑÀ» ÃëµæÇÑ´Ù¸é ½Ã½ºÅÛÀÇ ¸ðµç Á¤º¸°¡ À¯ÃâµÇ´Â °ÍÀº ½Ã°£ ¹®Á¦ÀÏ »ÓÀÔ´Ï´Ù.
ÃÖ±Ù¿¡´Â SQLÀÇ ¹®ÀÚ¿ ºñ±³¿¡ »ç¿ëÇÏ´Â ÀÛÀº µû¿ÈÇ¥(')°¡ SQL ¿ä¼Ò°¡ ¾Æ´Ï¶ó ´Ü¼ø ¹®ÀÚ¿·Î Ãë±ÞµÇµµ·Ï À¥ ÀÔ·Â ÀÚ·á¿¡ ÀÚµ¿À¸·Î ¹é½½·¡½Ã(\)¸¦ ºÙ¿©¼ ¿¡½ºÄÉÀÌÇÁ(Escape)ÇÏ´Â magic_quotes_gpc PHP ¼³Á¤À» ¹Ý¿µÇØ ³õ°í »ç¿ëÇϴµ¥ addslashes() ÇÔ¼ö¸¦ ÅëÇؼ ÀÛ¾÷ÇÒ ¼öµµ ÀÖ½À´Ï´Ù. ±×·¸Áö¸¸ ÀÌ·¯ÇÑ ¹æ½Äµµ À§ÀÇ ¿¹Á¦ ó·³ ¹®ÀÚ¿ÀÌ ¾Æ´Ñ Ç׸ñ¿¡ ´ëÇÑ °ø°ÝÀ» ¸·Áö´Â ¸øÇϹǷΠÀÔ·Â ÀÚ·áÀÇ »çÀü °Ë»ç¸¦ ²À ¼öÇàÇØ¾ß ÇÕ´Ï´Ù.
¶Ç ´Ù¸¥ ¿¹¹æ¹ýÀº °³¹ßÀÚ°¡ ¾à°£ ºÒÆíÇÒ ¼ö ÀÖÁö¸¸ »ç¿ëÀÚ°¡ SQL¿¡ ´ëÇÑ º¯ÇüÀ» ÇÒ ¼ö ¾øµµ·Ï ¿øõÀûÀ¸·Î Â÷´ÜÇÏ´Â ¹æ¹ýÀ¸·Î µ¿ÀûÀ¸·Î SQLÀ» Á¶¸³ÇÏÁö ¾Ê°í ¹Ì¸® SQL ÆĽÌÀ» ¿ä±¸ÇÏ°í ½ÇÇà½ÃÁ¡¿¡ ÇÊ¿äÇÑ ³»¿ë¸¸ Àü´ÞÇÏ´Â Prepared Statements ¶Ç´Â Parameterised Queries¸¦ »ç¿ëÇÏ´Â °ÍÀÔ´Ï´Ù. ÀÌ ¹æ¹ýÀ» »ç¿ëÇÏ¸é »ç¿ëÀÚÀÇ ºñÁ¤»óÀûÀÎ µ¥ÀÌÅÍ Àü´Þ·Î ÀÎÇÑ ¿Àµ¿ÀÛÀ̳ª °ø°ÝÀ» ¸ðµÎ ¿¹¹æÇÒ ¼ö ÀÖ°í ´ÙÁß ÁúÀÇÀÇ °æ¿ì µ¥ÀÌÅͺ£À̽º ÁúÀÇ ¼Óµµµµ °³¼±ÇÏ´Â È¿°úµµ ÀÖ½À´Ï´Ù.
¡á ÄÚµå(Code) ÀÎÁ§¼Ç
¼¹öÀÇ PHP ÄÚµå ½ÇÇà °úÁ¤¿¡ °ø°ÝÀÚÀÇ Äڵ带 »ðÀÔ½ÃÅ°´Â À§ÇùÀ¸·Î °¡Àå ¸¹Àº °ø°ÝÀº ¼¹ö¿¡¼ ¼öÇà Äڵ带 ³»Æ÷½ÃÅ°´Â include(), include_once(), require(), require_once() ÇÔ¼öµéÀ» ´ë»óÀ¸·Î Çؼ ÀÚ½ÅÀÇ Äڵ尡 ½ÇÇà °úÁ¤¿¡ ¹Ý¿µµÇµµ·Ï ÇÏ´Â °ÍÀÔ´Ï´Ù.
include ($_GET['id'].".php");
À§ÀÇ »ç·Êó·³ À¥ ÀÔ·Â ÀڷḦ ±â¹ÝÀ¸·Î À̵é ÇÔ¼ö¸¦ »ç¿ëÇÑ´Ù¸é öÀúÇÑ »çÀü °Ë»ç¸¦ ÇØ¾ß ÇÕ´Ï´Ù. ¶Ç´Ù¸¥ ÄÚµå ÀÎÁ§¼ÇÀÇ À§Ç輺Àº eval() ÇÔ¼ö »ç¿ëÀÔ´Ï´Ù. eval() ÇÔ¼ö·Î PHP Äڵ带 ¹®ÀÚ¿·Î Àü´ÞÇÏ¸é ±×´ë·Î ¼öÇàÇϱ⠶§¹®¿¡ eval() ÇÔ¼ö ÆĶó¹ÌÅÍ°¡ Ȥ¿©¶óµµ À¥ ÀԷ°ú ¿¬°ü¼ºÀÌ ÀÖ´Ù¸é öÀúÇÑ »çÀü °Ë»ç¸¦ ¹Ýµå½Ã ¼öÇàÇØ¾ß ÇÕ´Ï´Ù.
¡á °æ·Î º¯Çü
´Ü¼ø ·ÎÄà »Ó¸¸¾Æ´Ï¶ó HTTP, FTP ÀÚ¿øµµ ÀÐÀ» ¼ö ÀÖ´Â URI()¸¦ ÀνÄÇÏ´Â include(), file(), require(), file_get_contents()µîÀÇ ÇÔ¼ö¿¡ ´ëÇÑ °ø°ÝÀ¸·Î °³¹ßÀÚ°¡ ÀǵµÇÏÁö ¾ÊÀº ´Ù¸¥ »çÀÌÆ®³ª µð·ºÅ丮¿¡ Á¢±ÙÇÏ·Á´Â °ø°ÝÀÔ´Ï´Ù. À̵é ÇÔ¼öÀÇ È£Ãâ °úÁ¤¿¡ À¥ ÀÔ·Â ÀÚ·á°¡ ¿¬°üµÈ´Ù¸é ¹Ýµå½Ã »çÀü °ËÁõÀÌ ÀÌ·ç¾îÁ®¾ß ÇÕ´Ï´Ù.
±âÁ¸ °æ·Î¿¡ À¥ ÀÔ·Â µ¥ÀÌÅ͸¦ ºÙÀÌ´Â °æ¿ì¿¡µµ "../"¿Í °°Àº °æ·Î°¡ ºÙ¿©Áö¸é °³¹ßÀÚÀÇ Àǵµ¿Í´Â ¾î±ß³ª´Â °á°ú°¡ µÇ±â ¶§¹®¿¡ ÀÌ·± °æ·Î¸¦ °É·¯³»´Â ÀÛ¾÷ÀÌ ²À ÇÊ¿äÇÕ´Ï´Ù.
PHP ȯ°æ¿¡¼ÀÇ ¸î°¡Áö ÀÎÁ§¼Ç °ø°Ý ÇüŸ¦ »ìÆ캸¾ÒÁö¸¸ ¹¹´Ï¹¹´ÏÇصµ ²Ä²ÄÇÑ ÀÔ·Â °Ë»ç¿Í öÀúÇÑ È¯°æ ¼³Á¤ È®ÀÎ ¸¸ÀÌ ¼¹ö¸¦ ¾ÈÁ¤ÀûÀ¸·Î ¿î¿µÇÏ´Â ¹æ¹ýÀ¸·Î º¸ÀÔ´Ï´Ù. ¹°·Ð ²Ä²ÄÇÑ °Ë»ç´Â ¼Óµµ ÀúÇÏ¿Í ÄÚµåÀÇ º¹Àâȸ¦ À¯¹ßÇÒ ¼öµµ ÀÖÁö¸¸ À̶ÇÇÑ È¿°úÀûÀÎ °øµ¿ ·çƾ È°¿ë°ú Ä¿¹Â´ÏƼÀÇ ²ÙÁØÇÑ ¸ð´ÏÅ͸µÀ¸·Î È¿°úÀûÀ¸·Î ´ëóÇÒ ¼ö ÀÖÀ¸¸®¶ó º¸ÀÔ´Ï´Ù. "PHP´Â ¹«Á¶°Ç º¸¾È¿¡ ¾àÇØ!" ÇÏ´Â ¸»Àº ¹«½ÄÀÇ ¹ß·Î°¡ ¾Æ´Ñ°¡ ½Í½À´Ï´Ù. ¾à°£ÀÇ ´ëºñ·Î º¸¾È¿¡ ¾àÇÏ´Ù´Â ¿À¸íÀ» ¾Ä´Â PHP ÇÁ·Î±×·¡¹ÖÀÌ µÇ¾î¾ß °Ú½À´Ï´Ù.
|
|
̵̧ : 497 |
̵̧
¸ñ·Ï
|
|
|  |
|