À¥¼ºñ½º´Â ´©±¸¿¡°Ô³ª °³¹æµÈ ¼ºñ½ºÀ̱⠶§¹®¿¡ ÀüÅëÀûÀΠħÀÔÂ÷´Ü ½Ã½ºÅÛÀ» ÀÌ¿ëÇÑ ¹æ¾î°¡ ¿ëÀÌÇÏÁö ¾ÊÀ¸¸ç, °ø°ÝÀÚµéÀÇ ÁÖ¿ä °ø°Ý¸ñÇ¥°¡ µÈ´Ù. ÀÌ·¯ÇÑ °ø°³¼ºÀ» ÀÌ¿ëÇÑ »õ·Î¿î À§ÇùÀÌ Áö¼ÓÀûÀ¸·Î ¹ß°ßµÇ°í Àֱ⠶§¹®¿¡ À¥¼ºñ½º °³¹ßÀÚ´Â º¸¾È¿¡ ¸¹Àº ½Å°æÀ» ½á¼ ¼ºñ½º¸¦ °³¹ßÇØ¾ß ÇÏ¸ç ¿î¿µÀÚ´Â ÃֽŠÀ¥º¸¾È ±â¼úÀÇ ¹ßÀü¿¡ °ü½ÉÀ» °¡Áö°í ¹è¿ö¼ º¸¾ÈÃë¾àÁ¡À» °³¼±ÇÒ ¼ö ÀÖ¾î¾ß ÇÑ´Ù.
PHP form validation / Filters
Âü°íÀÚ·á
¾ÈÀüÇÑ PHP ÀÀ¿ëÇÁ·Î±×·¥À» ÀÛ¼ºÇÏ´Â ÀÏ°ö°¡Áö ½À°ü
OWASP (The Open Web Application Security Project) - ¿ÀÇÂÀ¥º¸¾È ÇÁ·ÎÁ§Æ®´Â ±¹Á¦ À¥ º¸¾È Ç¥ÁØ ±â±¸·Î¼ ÁÖ·Î À¥¿¡ °üÇÑ Á¤º¸³ëÃâ, ¾Ç¼º ÆÄÀÏ ¹× ½ºÅ©¸³Æ®, º¸¾È Ãë¾àÁ¡ µîÀ» ¿¬±¸Çϸç 10 ´ë À¥ ¾ÖÇø®ÄÉÀ̼ÇÀÇ Ãë¾àÁ¡À» ¹ßÇ¥ÇÑ´Ù.
Top Ten Overview (2010)
A1: Injection
- SQL, OS, LDAP ÀÎÁ§¼Ç°ú °°Àº ÀÎÁ§¼Ç °áÇÔÀº ½Å·ÚÇÒ ¼ö ¾ø´Â µ¥ÀÌÅÍ°¡ ¸í·É¾î³ª ÁúÀǾîÀÇ ÀϺκÐÀ¸·Î½á ÀÎÅÍÇÁ¸®ÅÍ¿¡ º¸³»Áú ¶§ ¹ß»ýÇÑ´Ù. °ø°ÝÀÚÀǾÇÀÇÀûÀÎ µ¥ÀÌÅÍ´Â ¿¹±âÄ¡¾ÊÀº ¸í·É ½ÇÇàÀ̳ª ±ÇÇѾø´Â µ¥ÀÌÅÍ¿¡ Á¢±ÙÇϵµ·Ï ÀÎÅÍÇÁ¸®Å͸¦ ¼ÓÀÏ ¼ö ÀÖ´Ù.
A2: Cross-Site Scripting (XSS)
- XSS °áÇÔÀº ÀûÀýÇÑ È®ÀÎÀ̳ª Á¦ÇѾøÀÌ ¾ÖÇø®ÄÉÀ̼ÇÀÌ ½Å·ÚÇÒ ¼ö ¾ø´Â µ¥ÀÌÅ͸¦ °®°í, ±×°ÍÀ» À¥ºê¶ó¿ìÀú¿¡ º¸³¾ ¶§ ¹ß»ýÇÑ´Ù. XSS´Â °ø°ÝÀÚ°¡ ÇÇÇØÀÚÀÇ ºê¶ó¿ìÀú ³»¿¡¼ ½ºÅ©¸³Æ®ÀÇ ½ÇÇàÀ» Çã¿ëÇÔÀ¸·Î½á, »ç¿ëÀÚÀÇ ¼¼¼ÇÀ» Å»ÃëÇϰųª, À¥»çÀÌÆ®¸¦ º¯Á¶Çϰųª, ¾ÇÀÇÀûÀÎ »çÀÌÆ®·Î »ç¿ëÀÚ¸¦ ¸®´ÙÀÌ·ºÆ®ÇÒ ¼ö ÀÖ´Ù.
A3: Broken Authentication and Session Management
- ÀÎÁõ°ú ¼¼¼Ç °ü¸®¿Í ¿¬°üµÈ ¾ÖÇø®ÄÉÀÌ¼Ç ±â´ÉÀº Á¾Á¾ ¿Ã¹Ù·Î ±¸ÇöµÇÁö ¾Ê´Â´Ù. ±× °á°ú, °ø°ÝÀÚ·Î ÇÏ¿©±Ý ´Ù¸¥ »ç¿ëÀÚÀÇ ¾ÆÀ̵§ÅÍƼ·Î °¡Àå ÇÒ ¼ö ÀÖµµ·Ï Æнº¿öµå, Å°, ¼¼¼Ç ÅäÅ« ü°è¸¦ À§Å·ӰÔÇϰųª, ±¸ÇöµÈ ´Ù¸¥ °áÇÔµéÀ» ¾Ç¿ëÇÒ ¼ö ÀÖµµ·Ï Çã¿ëÇÑ´Ù.
A4: Insecure Direct Object References
- Á÷Á¢ °´Ã¼ ÂüÁ¶´Â ÆÄÀÏ, µð·ºÅ丮, µ¥ÀÌÅͺ£À̽º Å°¿Í °°ÀÌ ³»ºÎÀûÀ¸·Î ±¸ÇöµÈ °´Ã¼¿¡ ´ëÇØ °³¹ßÀÚ°¡ ÂüÁ¶¸¦ ³ëÃâÇÒ ¶§ ¹ß»ýÈù´Ù.Á¢±ÙÅëÁ¦¿¡ ÀÇÇÑ È®ÀÎÀ̳ª ´Ù¸¥ º¸È£°¡ ¾ø´Ù¸é, °ø°ÝÀÚ´Â ÀÌ ÂüÁ¶¸¦ ±ÇÇÑ ¾ø´Â µ¥ÀÌÅÍ¿¡ Á¢±ÙÇϱâ À§ÇØ Á¶ÀÛÇÒ ¼ö ÀÖ´Ù.
A5: Cross-Site Request Forgery (CSRF)
- CSRF °ø°ÝÀº ·Î±×¿Â µÈ ÇÇÇØÀÚÀÇ ºê¶ó¿ìÀú°¡ Ãë¾àÇÑ À¥¾ÖÇø®ÄÉÀ̼ǿ¡ ÇÇÇØÀÚÀÇ ¼¼¼Ç ÄíÅ°¿Í ¾î¶² ´Ù¸¥ ÀÚµ¿À¸·Î Æ÷ÇÔµÈ ÀÎÁõ Á¤º¸¸¦ °®°í º¯Á¶µÈ HTTP ¿äûÀ» º¸³»µµ·Ï °Á¦ÇÑ´Ù. ÀÌ°ÍÀº °ø°ÝÀÚ°¡ ÇÇÇØÀÚÀÇ ºê¶ó¿ìÀú·Î ÇÏ¿©±Ý Ãë¾àÇÑ ¾ÖÇø®ÄÉÀ̼ÇÀÌ ÇÇÇØÀڷκÎÅÍÀÇ Á¤´çÇÑ ¿äûÀ̶ó°í Âø°¢ÇÏ°Ô ¸¸µå´Â ¿äûµéÀ» »ý¼ºÇϵµ·Ï °Á¦ÇÏ´Â °ÍÀ» Çã¿ëÇÑ´Ù.
A6: Security Misconfiguration
- ÈǸ¢ÇÑ º¸¾ÈÀº ¾ÖÇø®ÄÉÀ̼Ç, ÇÁ·¹ÀÓ¿öÅ©, ¾ÖÇø®ÄÉÀ̼Ǽ¹ö, À¥¼¹ö, µ¥ÀÌÅͺ£À̽º ¼¹ö¿Í Ç÷§Æû¿¡ ´ëÇØ º¸¾È ±¸¼ºÀÌ Á¤Àǵǰí Àû¿ëÇϱ⸦ ¿ä±¸ÇÑ´Ù. ´ëºÎºÐÀÌ º¸¾ÈÀ» ±âº»ÀûÀ¸·Î žÀçµÇÁö ¾Ê±â ¶§¹®¿¡ ÀÌ ¸ðµç ¼³Á¤Àº Á¤Àǵǰí, ±¸ÇöµÇ°í, À¯ÁöµÇ¾î¾ß¸¸ ÇÑ´Ù. ÀÌ°ÍÀº ¾ÖÇø®ÄÉÀ̼ǿ¡¼ »ç¿ëµÇ´Â ¸ðµç ÄÚµå ¶óÀ̺귯¸®¸¦ Æ÷ÇÔÇÏ¿© ¸ðµç ¼ÒÇÁÆ®¿þ¾î°¡ ÃÖ½ÅÀÇ »óŸ¦ À¯ÁöÇÏ´Â °ÍÀ» Æ÷ÇÔÇÑ´Ù.
A7: Insecure Cryptographic Storage
- ¸¹Àº À¥¾ÖÇø®ÄÉÀ̼ǵéÀÌ ÀûÀýÇÑ ¾ÏÈ£³ª Çؽ¬¸¦ °®°í ½Å¿ëÄ«µå¹øÈ£, Áֹεî·Ï¹øÈ£, ±×¸®°í ÀÎÁõ ½Å·Ú Á¤º¸¿Í °°Àº ¹Î°¨ÇÑ µ¥ÀÌÅ͸¦ ÀûÀýÈ÷ º¸È£ÇÏÁö ¾Ê´Â´Ù. °ø°ÝÀÚ´Â ¾ÆÀ̵§Æ¼Æ¼ µµ³, ½Å¿ëÄ«µå»ç±â, ¶Ç´Â ´Ù¸¥ ¹üÁ˸¦ ÀúÁö¸£±â À§ÇØ ±×·¸°Ô ¾àÇÏ°Ô º¸È£µÈ µ¥ÀÌÅ͸¦ ÈÉÄ¡°Å³ª Á¶ÀÛÇÒ Áö ¸ð¸¥´Ù.
A8: Failure to Restrict URL Access
- ¸¹Àº À¥¾ÖÇø®ÄÉÀ̼ǵéÀÌ º¸È£µÈ ¸µÅ©³ª ¹öÆ°À» Ç¥ÇöÇϱâ Àü¿¡ URL Á¢±Ù ±ÇÇÑÀ» È®ÀÎÇÑ´Ù. ±×·¯³ª, ¾ÖÇø®ÄÉÀ̼ÇÀº ÀÌ ÆäÀÌÁöµéÀÌ Á¢±ÙµÉ ¶§¸¶´Ù ¸Å¹ø À¯»çÇÑ Á¢±Ù ÅëÁ¦ È®ÀÎÀÌ ÇÊ¿äÇÏ´Ù. °ø°ÝÀÚ´Â ÀÌ °¨ÃçÁø ÆäÀÌÁö¿¡ Á¢±ÙÇϱâ À§ÇØ URLÀ» º¯Á¶½Ãų ¼ö ÀÖ´Ù.
A9: Insufficient Transport Layer Protection
- ¾ÖÇø®ÄÉÀ̼ÇÀº Á¾Á¾ ¹Î°¨ÇÑ ³×Æ®¿öÅ© Æ®·¡ÇÈÀÇ ÀÎÁõ, ¾ÏÈ£È, ±×¸®°í ºñ¹Ð¼º°ú ¹«°á¼ºÀ» º¸È£Çϴµ¥ ½ÇÆÐÇÑ´Ù. ½ÇÆÐÇÒ ¶§¿¡´Â ´ëü·Î ¾àÇÑ ¾Ë°í¸®ÁòÀ» »ç¿ëÇϰųª, ¸¸·áµÇ°Å³ª À¯È¿ÇÏÁö ¾ÊÀº ÀÎÁõ¼¸¦ »ç¿ëÇϰųª ¶Ç´Â ±×°ÍµéÀ» ¿Ã¹Ù·Î »ç¿ëÇÏÁö ¾ÊÀ» ¶§ÀÌ´Ù.
A10: Unvalidated Redirects and Forwards
- À¥¾ÖÇø®ÄÉÀ̼ÇÀº Á¾Á¾ »ç¿ëÀÚµéÀ» ´Ù¸¥ ÆäÀÌÁö·Î ¸®´ÙÀÌ·ºÆ®Çϰųª Æ÷¿öµåÇÑ´Ù. ±×·¯³ª, ¸ñÀû ÆäÀÌÁö¸¦ °áÁ¤Çϱâ À§ÇØ ½Å·ÚµÇÁö ¾Ê´Â µ¥ÀÌÅ͸¦ »ç¿ëÇÑ´Ù.ÀûÀýÇÑ È®ÀÎÀÌ ¾ø´Ù¸é, °ø°ÝÀÚ´Â ÇÇÇØÀÚ¸¦ ÇÇ½Ì »çÀÌÆ®³ª ¾ÇÀÇÀûÀÎ »çÀÌÆ®·Î ¸®´ÙÀÌ·ºÆ® ÇÒ ¼ö ÀÖ°í, Æ÷¿öµå¸¦ ±ÇÇÑ ¾ø´Â ÆäÀÌÁöÀÇ Á¢±ÙÀ» À§ÇØ »ç¿ëÇÒ ¼ö ÀÖ´Ù.
½Ç½À³»¿ë
1. ¾ÈÀüÇÑ PHP ÀÀ¿ëÇÁ·Î±×·¥À» ÀÛ¼ºÇÏ´Â ÀÏ°ö°¡Áö ½À°ü¿¡¼ À¥º¸¾È Ãë¾àÁ¡À» Ç׸ñº°·Î °øºÎÇغ»´Ù.
2. ±³Àç ¼Ò½º·Î ±¸ÇöÇÑ È¨ÆäÀÌÁö¿¡¼ ÀÌ·¯ÇÑ Ãë¾àÁ¡µéÀÌ Á¸ÀçÇÏ´ÂÁö Á¡°ËÇغ»´Ù. ã¾Æ³½ Ãë¾àÁ¡Àº ¼öÁ¤ÇÏ¿© Ãë¾àÁ¡À» Á¦°ÅÇÑ´Ù.
3. ±³Àç ¼Ò½º·Î ±¸ÇöÇÑ È¨ÆäÀÌÁö¿¡¼ ƯÈ÷ ´ÙÀ½ ³»¿ëÀ» ¼öÁ¤ÇÑ´Ù.
- ¹®Á¦Á¡ 1 (·Î±×ÀÎ Ãë¾àÁ¡): ·Î±×Àνà Æнº¿öµå°¡ Æò¹®»óÅ·ΠÀü´ÞµÇ°í µ¥ÀÌÅͺ£À̽º¿¡ ±×´ë·Î ÀúÀåµÇ´Â °ÍÀÌ Ãë¾à¼ºÀÌ ÀÖÀ½. crypt ÇÔ¼ö¸¦ ÀÌ¿ëÇÏ¿© Çؽ¬°ªÀ» °è»êÇÏ¿© À¥¼¹ö¿¡ Àü´ÞÇÏ°í µ¥ÀÌÅͺ£À̽º¿¡ Çؽ¬°ªÀ» ÀúÀåÇÏ¿© ÀÌ¿ëÇϵµ·Ï ¼Ò½º¸¦ ¼öÁ¤ÇÑ´Ù.
- ¹®Á¦Á¡ 2 (ÀÎÁ§¼Ç Ãë¾àÁ¡): ·Î±×ÀΠâ¿¡¼ id, password ÀÔ·ÂÄ¿¡ DB¸¦ ¼ÓÀÏ ¼ö ÀÖ´Â SQL ¹®À» ÀÔ·Â °¡´É. ÀÌ·± °ÍÀ» ÇÊÅ͸µÇÏ´Â ±â´ÉÀ» Ãß°¡ÇÏ¿© ¼Ò½º¸¦ ¼öÁ¤ÇÑ´Ù.
- ¹®Á¦Á¡ 3 (ÆÄÀϾ÷·Îµå Ãë¾àÁ¡): ÆÄÀϾ÷·Îµå ±â´É¿¡¼ ¾î¶² ÆÄÀÏÀ̵çÁö ¾÷·Îµå °¡´ÉÇϵµ·Ï µÇ¾î ÀÖ´Â °ÍÀº Ãë¾à¼ºÀÌ ¸Å¿ì Å. ÆÄÀÏ È®ÀåÀÚ°¡ jpg, gif, hwp, pptx, docx, xlsx µî ¾Ë·ÁÁø È®ÀåÀÚÀÎ °æ¿ì¿¡¸¸ ÆÄÀÏ ¾÷·Îµå °¡´ÉÇϵµ·Ï ÇÊÅ͸µÇÏ´Â ±â´ÉÀ» °®µµ·Ï ¼Ò½º¸¦ ¼öÁ¤ÇÑ´Ù.
- ¹®Á¦Á¡ 4 (½ºÅ©¸³Æ® Ãë¾àÁ¡): °Ô½Ã¹°¿¡ ½ºÅ©¸³Æ®¸¦ ¸¶À½´ë·Î ¾µ ¼ö ÀÖ°Ô µÇ¾î ÀÖ¾î¼ XSS µîÀÇ Ãë¾à¼ºÀÌ ÀÖÀ½. ½ºÅ©¸³Æ®¸¦ ¾µ ¼ö ¾øµµ·Ï °Ô½Ã¹°ÀÇ º»¹®À» ÇÊÅ͸µÇÏ´Â ±â´ÉÀ» Ãß°¡ÇÏ¿© ¼Ò½º¸¦ ¼öÁ¤ÇÑ´Ù. PHPÀÇ Æû ÀԷ°ª °ËÁõ, ÇÊÅÍ ·ÎÁ÷À» Àû¿ëÇÑ´Ù.