¸¹Àº ¿©·¯°¡Áö ŸÀÔÀÇ ÇÁ·Î±×·¥µéÀÌ º¸¾ÈÀûÀÎ ÇÁ·Î±×·¥ (ÀÌ Ã¥¿¡ Á¤ÀÇµÈ ¹Ù¿Í °°ÀÌ) ÀÏ Çʿ䰡 ÀÖÀ» ¼ö Àִµ¥ ¾à°£ÀÇ °øÅëµÈ ŸÀÔÀº ´ÙÀ½°ú °°´Ù:
¿ø°Ý µ¥ÀÌŸ ºä¾î·Î »ç¿ëµÇ´Â ¾ÖÇø®ÄÉÀÌ¼Ç ÇÁ·Î±×·¥. ¿öµå ÇÁ·Î¼¼¼ ¶Ç´Â ÆÄÀÏ Æ÷¸Ë ºä¾î¿Í °°Àº ºä¾î·Î »ç¿ëµÇ´Â ÇÁ·Î±×·¥µéÀº ´ë°³ ½Å·ÚµÇÁö ¾ÊÀº »ç¿ëÀÚ°¡ ¿ø°ÝÀûÀ¸·Î º¸³»¿Â µ¥ÀÌŸ¸¦ º¸±â À§ÇØ ¿äûµÈ´Ù (ÀÌ ¿äûÀº À¥ ºê¶ó¿ìÀú¿¡ ÀÇÇØ ÀÚµ¿ÀûÀ¸·Î È£ÃâµÉ ¼öµµ ÀÖ´Ù). ºÐ¸íÈ÷ ½Å·ÚµÇÁö ¾ÊÀº »ç¿ëÀÚÀÇ ÀÔ·ÂÀº ¾ÖÇø®ÄÉÀ̼ǿ¡°Ô ÀÓÀÇÀÇ ÇÁ·Î±×·¥À» ½ÇÇà½Ã۵µ·Ï Çã¿ëÇØ¼´Â ¾ÈµÈ´Ù. º¸Åë ÃʱâÈ ¸ÅÅ©·Î¸¦ Áö¿øÇÏ´Â °ÍÀº ¾î¸®¼®Àºµ¥ (¸ÅÅ©·Î´Â µ¥ÀÌŸ°¡ Ç¥½ÃµÉ ¶§ ½ÇÇàµÈ´Ù) À̸¦ Áö¿øÇØ¾ß ÇÑ´Ù¸é º¸¾ÈÀûÀÎ sandbox ¸¦ ¸¸µé¾î¾ß ÇÑ´Ù (º¹ÀâÇÏ°í ¿¡·¯¸¦ ÀÏÀ¸Å°±â ½¬¿î ŽºÅ©). 5Àå ¿¡¼ ³íÀǵǴ ¹öÆÛ ¿À¹ö Ç÷οì¿Í °°Àº ¹®Á¦µéÀ» Á¶½ÉÇØ¶ó ÀÌ´Â ½Å·ÚµÇÁö ¾ÊÀº »ç¿ëÀÚ¿¡°Ô ºä¾î·Î ÀÓÀÇÀÇ ÇÁ·Î±×·¥À» ½ÇÇà½Ã۵µ·Ï Çã¿ëÇÒ ¼öµµ ÀÖ´Ù.
°ü¸®ÀÚ (·çÆ®) °¡ »ç¿ëÇÏ´Â ¾ÖÇø®ÄÉÀÌ¼Ç ÇÁ·Î±×·¥. ±×·¯ÇÑ ÇÁ·Î±×·¥µéÀº °ü¸®ÀÚ°¡ ¾Æ´Ñ »ç¶÷¿¡ ÀÇÇØ Á¦¾îµÉ ¼ö ÀÖ´Â Á¤º¸¸¦ ½Å·ÚÇÏÁö ¾Ê¾Æ¾ß ÇÑ´Ù.
·ÎÄà ¼¹ö (¶ÇÇÑ µ¥¸óÀ̶ó°íµµ ºÎ¸¥´Ù).
³×Æ®¿öÅ©¿¡ Á¢±ÙÇÒ ¼ö ÀÖ´Â ¼¹ö (¶§¶§·Î ³×Æ®¿öÅ© µ¥¸óÀ̶ó°íµµ ºÎ¸¥´Ù).
CGI ½ºÅ©¸³Æ®¸¦ Æ÷ÇÔÇÑ À¥ ±â¹Ý ¾ÖÇø®ÄÉÀ̼Ç. À̵éÀº ³×Æ®¿öÅ©¿¡ Á¢±ÙÇÒ ¼ö ÀÖ´Â ¼¹öÀÇ Æ¯º°ÇÑ °æ¿ìÁö¸¸ ±×µé¸¸ÀÇ ¹üÁÖ¸¦ °¡Áú¸¸ÇÒ¸¸Å º¸ÆíÀûÀÌ´Ù. ±×·¯ÇÑ ÇÁ·Î±×·¥µéÀº À¥ ¼¹ö¸¦ ÅëÇØ °£Á¢ÀûÀ¸·Î È£ÃâµÇ´Âµ¥ ¸¹Àº °ø°ÝÀ» °É·¯³»¾î Á¦°ÅÇÏÁö¸¸ ±×·³¿¡µµ ºÒ±¸ÇÏ°í °ßµ®¾ß ÇÏ´Â ¸¹Àº °ø°ÝµéÀ» ³²±ä´Ù.
¾ÖÇø´ (Ŭ¶óÀÌ¾ðÆ®·Î ´Ù¿î·ÎµåµÇ¾î ÀÚµ¿ÀûÀ¸·Î ½ÇÇàµÇ´Â ÇÁ·Î±×·¥). ÀÌ´Â ÆÄÀ̽ã°ú °°Àº ´Ù¸¥ ¾ð¾îµéµµ ¶ÇÇÑ ¸ð¹ÙÀÏ Äڵ带 Áö¿øÇÏÁö¸¸ ƯÈ÷ ÀÚ¹Ù°¡ À¯¸íÇÏ´Ù. ¸î¸î º¸¾È °üÁ¡ÀÌ Àִµ¥ Ŭ¶óÀ̾ðÆ®Ãø¿¡¼ ¾ÖÇø´ ÀÎÇÁ¶ó (infrastructure) ¸¦ ±¸ÇöÇÏ´Â »ç¶÷Àº ¹Ýµå½Ã ´ÜÁö Çã¿ëµÈ ±â´Éµé¸¸À» ``º¸¾ÈÀûÀÎ" °ÍÀ¸·Î ÇØ¾ßÇÏ¸ç ¾ÖÇø´ ÀÛ¼ºÀÚ´Â ÀûÀÇÀִ ȣ½ºÆ®µéÀÇ ¹®Á¦¸¦ ´Ù·ï¾ß ÇÑ´Ù (´Ù¸¥ ¸»·Î º¸Åë Ŭ¶óÀÌ¾ðÆ®¸¦ ¹ÏÀ» ¼ö ¾ø´Ù). ÀûÀÇÀִ ȣ½ºÆ®¿¡¼ ¾ÖÇø´À» ½ÇÇà½ÃŰ´Â °ÍÀ» ´Ù·ç·Á´Â ¾à°£ÀÇ ¿¬±¸°¡ ÀÖÁö¸¸ ¼ÖÁ÷È÷ ÀúÀÚ´Â ÀÌµé ¿¬±¸ ¹æ¹ýÀÇ °¡Ä¡¿¡ ´ëÇØ ȸÀÇÀûÀ̸ç ÀÌ ÁÖÁ¦´Â ÀúÀÚ°¡ ÀÌ Ã¥¿¡¼ ´õ¿í ±í°Ô ´Ù·çÁö ¾ÊÀ» ¸¸Å ÀÌ»öÀûÀÌ´Ù.
setuid/setgid ÇÁ·Î±×·¥. ÀÌ ÇÁ·Î±×·¥Àº ·ÎÄà »ç¿ëÀÚ¿¡ ÀÇÇØ È£ÃâµÇ¾î ½ÇÇàµÉ ¶§ Áï½Ã ÇÁ·Î±×·¥ ¼ÒÀ¯ÀÚ ¹×/¶Ç´Â ¼ÒÀ¯ÀÚ ±×·ìÀÇ ±ÇÇÑÀÌ ÁÖ¾îÁø´Ù. ¸¹Àº ¹æ½Ä¿¡ ÀÖ¾î À̵éÀº ¾ÈÀüÇÏ°Ô Çϱ⠰¡Àå ¾î·Á¿î ÇÁ·Î±×·¥À¸·Î ÀÌ´Â ±×µéÀÇ ÀÔ·Â Áß ¸¹Àº ºÎºÐÀÌ ½Å·ÚµÇÁö ¾ÊÀº »ç¿ëÀÚÀÇ Á¦¾îÇÏ¿¡ ÀÖ°í ¶ÇÇÑ ±×·¯ÇÑ ÀÔ·Â Áß ÀϺδ ¸í¹éÇÏÁö ¾Ê±â ¶§¹®ÀÌ´Ù.
ÀÌ Ã¥Àº ÀÌ·¯ÇÑ ¿©·¯°¡Áö ŸÀÔÀÇ ÇÁ·Î±×·¥µéÀÇ ¹®Á¦µéÀ» ÇϳªÀÇ ÁýÇÕÀ¸·Î º´ÇÕÇÑ´Ù. ÀÌ ¹æ¹ýÀÇ ´ÜÁ¡Àº ¿©±â¼ È®ÀÎµÈ ¹®Á¦µéÁß ÀϺΰ¡ ¸ðµç ÇÁ·Î±×·¥ ŸÀÔ¿¡ Àû¿ëµÇÁö ¾Ê´Â´Ù´Â °ÍÀε¥ ƯÈ÷, setuid/setgid ÇÁ·Î±×·¥Àº ¸¹Àº ¿¹±âÄ¡ ¾ÊÀº ÀԷµéÀ» °®À¸¸ç ÀÌ Ã¥ÀÇ ÁöħµéÁß ¸î¸î¸¸ÀÌ ÀÌ¿¡ Àû¿ëµÈ´Ù. ±×·¯³ª °¢°¢ÀÇ ÇÁ·Î±×·¥ÀÌ ÀÌ·¯ÇÑ °æ°èµéÀ» °¡·ÎÁö¸¦ ¼öµµ ÀÖ°í (¿¹, CGI ½ºÅ©¸³Æ®°¡ setuid/setgid ÀÏ ¼öµµ ÀÖÀ¸¸ç ¶ÇÇÑ µ¿ÀÏÇÑ È¿°ú¸¦ °®´Â ¹æ½ÄÀ¸·Î ¼³Á¤µÉ ¼öµµ ÀÖ´Ù) ¾î¶² ÇÁ·Î±×·¥µéÀº ´Ù¸¥ ŸÀÔÀÇ ÇÁ·Î±×·¥À¸·Î °í·ÁµÉ ¼ö ÀÖ´Â ¸î¸î ½ÇÇà ÆÄÀÏ·Î ³ª´©¾îÁú ¼öµµ Àֱ⠶§¹®¿¡ ºÐ¸íÇÑ °ÍÀº ¾Æ´Ï´Ù. ÀÌ·¯ÇÑ ÇÁ·Î±×·¥ ŸÀÔ ¸ðµÎ¸¦ ÇѲ¨¹ø¿¡ °í·ÁÇϴµ¥ ÀÖ¾î ÀåÁ¡Àº ÇÁ·Î±×·¥¿¡ ºÎÀûÀýÇÑ ¹üÁÖ¸¦ Àû¿ëÇÏ·Á ÇÏÁö ¾Ê°í ¸ðµç ¹®Á¦¸¦ °í·ÁÇÒ ¼ö ÀÖ´Ù´Â °ÍÀÌ´Ù. ÃßÈÄ º¼ °ÍÀÌÁö¸¸ ¿ø¸®µéÀÇ ¸¹Àº ºÎºÐÀÌ ¾ÈÀüÇÏ°Ô µÉ Çʿ䰡 ÀÖ´Â ¸ðµç ÇÁ·Î±×·¥¿¡ Àû¿ëµÈ´Ù.
ÀÌ Ã¥Àº C++, ÆÞ, PHP, ÆÄÀ̽ã, Ada95 ¿Í ÀÚ¹Ù¿Í °°Àº ´Ù¸¥ ¾ð¾îµé¿¡ ´ëÇØ ¾à°£ ¾ð±ÞÇϸç ÁÖ·Î C ·Î ÀÛ¼ºµÈ ÇÁ·Î±×·¥¿¡ ´ëÇØ ´Ù·é´Ù. ÀÌ´Â C °¡ À¯´Ð½º °è¿ ½Ã½ºÅÛ (CGI ½ºÅ©¸³Æ®À̿ܿ¡ ÆÞ, PHP, ÆÄÀ̽ãÀ» À» »ç¿ëÇÏ´Â °æÇâÀÌ ÀÖ´Ù) ¿¡¼ º¸¾ÈÀûÀÎ ÇÁ·Î±×·¥À» ±¸ÇöÇÏ´Â °¡Àå º¸ÆíÀûÀÎ ¾ð¾îÀÌ°í ´ëºÎºÐÀÇ ´Ù¸¥ ¾ð¾îµéÀÇ ±¸ÇöÀÌ C ¶óÀ̺귯¸®¸¦ È£ÃâÇϱ⠶§¹®ÀÌ´Ù. ±×·¯³ª C °¡ º¸¾È ¸ñÀû¿¡ ¸Â´Â °¡Àå ÃÖ¼±ÀÇ ¾ð¾î¶ó´Â °ÍÀ» ÀǹÌÇÏÁö´Â ¾ÊÀ¸¸ç ÀÌ Ã¥¿¡ ±â¼úµÈ ¿ø¸®µéÁß ´ëºÎºÐÀº »ç¿ëµÈ ÇÁ·Î±×·¡¹Ö ¾ð¾î¿¡ »ó°ü¾øÀÌ Àû¿ëµÈ´Ù.