http://www.hackerschool.org/HS_Boards/zboard.php?id=Free_Lectures&no=1306 [º¹»ç]
¿ø¹®Ãâó : http://www.microsoft.com/korea/technet
º¸¾ÈÀº ´ÙÂ÷¿øÀûÀÎ ¹®Á¦ÀÔ´Ï´Ù. ¾îµð¿¡¼³ª º¸¾È»ó À§ÇèÀÌ ¹ß»ýÇÒ ¼ö ÀÖ½À´Ï´Ù. »ç¿ëÀÚ°¡ ¿À·ù ó¸® Äڵ带 ÀÛ¼ºÇϰųª ³Ê¹« ¸¹Àº ±ÇÇÑÀ» Á¦°øÇÏ´Â °æ¿ì, ¼¹ö¿¡¼ ½ÇÇàÇÏ°í ÀÖ´Â ¼ºñ½º°¡ ¹«¾ùÀÎÁö ÀØ¾î ¹ö¸®´Â °æ¿ì, ¸ðµç »ç¿ëÀÚ ÀÔ·ÂÀ» Çã¿ëÇÏ´Â °æ¿ì µîÀÌ ÀÖ½À´Ï´Ù. ±× ¹Û¿¡µµ ¿©·¯ °¡Áö °æ¿ì°¡ ÀÖ½À´Ï´Ù. ´ÙÀ½°ú °°Àº ¾ÈÀüÇÑ ³×Æ®¿öÅ© Àü·«¿¡ ´ëÇÑ 10°¡Áö ÁÖÀÇ »çÇ׿¡ µû¶ó ½Ã½ºÅÛ, ³×Æ®¿öÅ©, Äڵ带 ¼øÁ¶·Ó°Ô º¸È£ÇÒ ¼ö ÀÖ½À´Ï´Ù.
1. »ç¿ëÀÚ ÀÔ·Â ½Å·ÚÀÇ À§Ç輺
ÀÌ ±â»çÀÇ ³ª¸ÓÁö ºÎºÐÀ» ÀÐÁö ¾Ê´õ¶óµµ ÇÑ °¡Áö ÁÖÀÇÇØ¾ß ÇÒ »çÇ×Àº "»ç¿ëÀÚ ÀÔ·ÂÀ» ¹ÏÁö ¸»¾Æ¾ß ÇÑ´Ù"´Â °ÍÀÔ´Ï´Ù. µ¥ÀÌÅÍ°¡ Ç×»ó ¿Ã¹Ù¸£°Ô ±¸¼ºµÇ°í Á¦´ë·Î µÇ¾î ÀÖ´Ù°í »ý°¢ÇÑ´Ù¸é ¹®Á¦¿¡ Á÷¸éÇÏ°Ô µË´Ï´Ù. ´ëºÎºÐÀÇ º¸¾È»ó Ãë¾àÁ¡Àº ¼¹ö ½Ã½ºÅÛ¿¡ À߸øµÈ µ¥ÀÌÅÍ°¡ Á¦°øÇÏ´Â °ø°ÝÀÚ·Î ÀÎÇØ ¹ß»ýÇÕ´Ï´Ù.
ÀÔ·ÂÀÌ ¿Ã¹Ù¸¥ Çü½ÄÀ̶ó°í ¹«Á¶°Ç ½Å·ÚÇÏ´Â °ÍÀº ¹öÆÛ ¿À¹ö·±, »çÀÌÆ® °£ ½ºÅ©¸³Æ® °ø°Ý, SQL ÁÖÀÔ °ø°Ý µî°ú °°Àº ¹®Á¦¸¦ ÀÏÀ¸Å³ ¼ö ÀÖ½À´Ï´Ù.
ÀÌ·¯ÇÑ ÀáÀçÀûÀÎ °ø°Ý ¹®Á¦¿¡ ´ëÇØ ÀÚ¼¼È÷ »ìÆ캸°Ú½À´Ï´Ù.
2. ¹öÆÛ ¿À¹ö·± ¹æÁö
¹öÆÛ ¿À¹ö·±Àº °ø°ÝÀÚ°¡ ÇÊ¿ä ÀÌ»óÀ¸·Î ±Ô¸ð°¡ Å« µ¥ÀÌÅ͸¦ ÀÀ¿ë ÇÁ·Î±×·¥¿¡ Á¦°øÇÒ ¶§ ¹ß»ýÇÏ´Â °ÍÀ¸·Î¼ ³»ºÎ ¸Þ¸ð¸® °ø°£À¸·Î ¿À¹öÇ÷ε˴ϴÙ. ¹öÆÛ ¿À¹ö·±Àº C/C++¿¡¼ ÁÖ·Î ¹ß»ýÇϸç ÀϹÝÀûÀ¸·Î ½±°Ô ÇØ°áÇÒ ¼ö ÀÖ½À´Ï´Ù. ¹öÆÛ ¿À¹ö·±Àº ¸íÈ®ÇÏÁö ¾ÊÀº ¹öÆÛ ¿À¹ö·±°ú ¼öÁ¤Çϱ⠾î·Á¿î ¹öÆÛ ¿À¹ö·± µÎ °¡Áö À¯ÇüÀÌ ÀÖ½À´Ï´Ù. °³¹ßÀÚ´Â ³»ºÎ ¹öÆÛº¸´Ù Å« µ¥ÀÌÅÍ°¡ ¿ÜºÎ¿¡¼ Á¦°øµÇ¸®¶ó°í´Â »ý°¢ÇÏÁö ¸øÇß½À´Ï´Ù. ¿À¹öÇ÷δ ¸Þ¸ð¸®ÀÇ ´Ù¸¥ µ¥ÀÌÅÍ ±¸Á¶¿¡ ¼Õ»óÀ» ÀÏÀ¸Å°±â ¶§¹®¿¡ °ø°ÝÀÚ°¡ À¯ÇØÇÑ Äڵ带 ½ÇÇàÇÒ ¼ö ÀÖ´Â °æ¿ì°¡ ÀÖ½À´Ï´Ù. ¶ÇÇÑ ¹öÆÛ ¾ð´õÇ÷Π¹× ¹öÆÛ ¿À¹ö·±Àº ¹è¿ Àε¦½Ì ¹®Á¦¸¦ À¯¹ß½ÃÅ°Áö¸¸ ÀϹÝÀûÀÎ °ÍÀº ¾Æ´Õ´Ï´Ù.
¾Æ·¡ÀÇ C++ Äڵ带 »ìÆ캾½Ã´Ù.
void DoSomething(char *cBuffSrc, DWORD cbBuffSrc) {
char cBuffDest[32];
memcpy(cBuffDest,cBuffSrc,cbBuffSrc);
}
ÀÌ Äڵ忡¼ À߸øµÈ Á¡Àº ¹«¾ùÀϱî¿ä »ç½Ç, cBuffSrc ¹× cbBuffSrc°¡ µ¥ÀÌÅ͸¦ ½Å·ÚÇÏÁö ¾ÊÀº ÄÚµå ÀÌ¿ÜÀÇ ½Å·ÚÇÏ´Â ¿øº»¿¡¼ ³ª¿Â °ÍÀÌ°í µ¥ÀÌÅÍÀÇ Çü½Ä°ú Å©±â°¡ ¿Ã¹Ù¸¥Áö È®ÀÎÇÑ °ÍÀ̶ó¸é ÀÌ Äڵ忡´Â À߸øµÈ Á¡ÀÌ ¾ø½À´Ï´Ù. ÇÏÁö¸¸ ÇØ´ç µ¥ÀÌÅÍ°¡ ½Å·ÚµÇÁö ¾ÊÀº ¿øº»¿¡¼ ³ª¿Â °ÍÀÌ°í À¯È¿¼º °Ë»ç¸¦ ÇÏÁö ¾ÊÀº °æ¿ì¿¡´Â °ø°ÝÀÚ(½Å·ÚµÇÁö ¾ÊÀº ¿øº»)°¡ cBuffDestº¸´Ù Å« cBuffSrc¸¦ ÀÛ¼ºÇÒ ¼ö ÀÖÀ¸¸ç cbBuffSrc¸¦ cBuffDestº¸´Ù Å©°Ô ¼³Á¤ÇÒ ¼öµµ ÀÖ½À´Ï´Ù. memcpy°¡ µ¥ÀÌÅ͸¦ cBuffDest¿¡ º¹»çÇÒ ¶§, cBuffDest°¡ ÇÔ¼öÀÇ ½ºÅà ÇÁ·¹ÀÓÀÇ ¹Ýȯ ÁÖ¼Ò ¿·¿¡ ÀÖ°í °ø°ÝÀÚ·Î ÀÎÇØ Äڵ尡 À¯ÇØÇÑ ÀÛ¾÷À» ½ÇÇàÇϹǷΠDoSomething¿¡¼ ¹ÝȯµÈ ÁÖ¼Ò¿¡ ³ª»Û ¿µÇâÀ» ¹ÌĨ´Ï´Ù.
ÀÌ ¹®Á¦¸¦ ÇØ°áÇÏ´Â ¹æ¹ýÀº »ç¿ëÀÚ ÀԷ°ú cBuffSrc ¹× cbBuffSrcÀÇ µ¥ÀÌÅ͸¦ ½Å·ÚÇÏÁö ¾Ê´Â °ÍÀÔ´Ï´Ù.
void DoSomething(char *cBuffSrc, DWORD cbBuffSrc) {
const DWORD cbBuffDest = 32;
char cBuffDest[cbBuffDest];
#ifdef _DEBUG
memset(cBuffDest, 0x33, cbBuffSrc);
#endif
memcpy(cBuffDest, cBuffSrc, min(cbBuffDest, cbBuffSrc));
}
ÀÌ ÇÔ¼ö´Â Á¦´ë·Î ÀÛ¼ºµÈ ÇÔ¼öÀÇ ¼¼ °¡Áö ¼Ó¼ºÀ» º¸¿©ÁÝ´Ï´Ù. ÀÌ ÇÔ¼ö´Â ¹öÆÛ ¿À¹ö·±À» ¿ÏȽÃŵ´Ï´Ù. ù°, ¹öÆÛ ±æÀ̸¦ Á¦°øÇϴ ȣÃâÀÚ°¡ ÇÊ¿äÇÕ´Ï´Ù. ¹°·Ð ÀÌ °ªÀ» ¹«Á¶°Ç ½Å·ÚÇÏÁö´Â ¸»¾Æ¾ß ÇÕ´Ï´Ù. µÑ°, µð¹ö±× ºôµå¿¡¼ ¼Ò½º ¹öÆÛ¸¦ Æ÷ÇÔÇÒ ¼ö ÀÖ´Â ÃæºÐÇÑ Å©±âÀÎÁö È®ÀÎÇϱâ À§ÇØ ÇØ´ç Äڵ尡 ¹öÆÛ¸¦ °Ë»öÇÕ´Ï´Ù. ±×·¸Áö ¾ÊÀ» °æ¿ì, ¾×¼¼½º À§¹ÝÀÌ ¹ß»ýÇϸç Äڵ带 µð¹ö°Å¿¡ throwÇÕ´Ï´Ù. ÀÌ ÀÛ¾÷À» ½ÇÇàÇÏ´Â Áß¿¡ ¸¹Àº ¹ö±×¸¦ º¼ ¼ö ÀÖ½À´Ï´Ù. ¸¶Áö¸·À¸·Î, °¡Àå Áß¿äÇÑ »çÇ×À¸·Î¼ memcpy¿¡ ´ëÇÑ È£ÃâÀº ¹æ¾îÀûÀ̱⠶§¹®¿¡ ¹öÆÛ°¡ ¼ÒÀ¯ÇÒ ¼ö ÀÖ´Â µ¥ÀÌÅ͸¸Å¸¸ º¹»çÇÕ´Ï´Ù.
MicrosoftÀÇ Windows Security Push¿¡¼´Â C ÇÁ·Î±×·¡¸Ó¸¦ À§ÇØ ¾ÈÀüÇÑ ¹®ÀÚ¿ ó¸® ÇÔ¼ö ¸ñ·ÏÀ» ¸¸µé¾ú½À´Ï´Ù. Strsafe.h: Safer String Handling in C (US) ¿¡¼ È®ÀÎÇϽʽÿÀ.
3. »çÀÌÆ® °£ ½ºÅ©¸³Æà ¹æÁö
»çÀÌÆ® °£ ½ºÅ©¸³Æà Ãë¾àÁ¡Àº À¥ °ü·Ã ¹®Á¦Á¡À¸·Î¼ ´ÜÀÏ À¥ ÆäÀÌÁöÀÇ °áÇÔÀ¸·Î ÀÎÇØ Å¬¶óÀ̾ðÆ®ÀÇ µ¥ÀÌÅÍ¿¡ ¼Õ»óÀ» ÀÔÈú ¼ö ÀÖ½À´Ï´Ù. ´ÙÀ½°ú °°Àº ASP.NET ÄÚµå ´ÜÆíÀÌ ÀÖ´Ù°í °¡Á¤ÇØ º¾½Ã´Ù.
<script language=c#>
Response.Write("¾È³çÇϼ¼¿ä, " + Request.QueryString("name"));
</script>
ÀÌ·¯ÇÑ Äڵ带 º» ÀûÀÌ ÀÖ½À´Ï±î ÀÌ ÄÚµå´Â À߸øµÈ ÄÚµåÀÔ´Ï´Ù. ÀϹÝÀûÀ¸·Î ´ÙÀ½°ú °°Àº URLÀ» »ç¿ëÇÏ¿© ÀÌ Äڵ忡 ¾×¼¼½ºÇÕ´Ï´Ù.
http://explorationair.com/welcome.aspx?name=Michael
C# Äڵ忡¼´Â ÇØ´ç µ¥ÀÌÅÍ°¡ Ç×»ó ¿Ã¹Ù¸¥ Çü½ÄÀ̸ç À̸§¸¸ Æ÷ÇÔÇÑ´Ù°í °¡Á¤ÇÕ´Ï´Ù. ÇÏÁö¸¸ °ø°ÝÀÚ´Â ÀÌ Äڵ带 ¾Ç¿ëÇÏ¿© ½ºÅ©¸³Æ® ¹× HTMLÀ» À̸§À¸·Î Á¦°øÇÕ´Ï´Ù. ´ÙÀ½ URLÀ» ÀÔ·ÂÇϸé
http://northwindtraders.com/welcome.aspx?name=<script>alert('¾È³ç!');</script>;
"¾È³ç!"À̶ó°í Ç¥½ÃµÈ ´ëÈ »óÀÚ°¡ ÀÖ´Â À¥ ÆäÀÌÁö¿¡ ¿¬°áµË´Ï´Ù. »ç¿ëÀÚ°¡ ÀÌ¿Í °°Àº ¸µÅ©¸¦ Ŭ¸¯ÇÏ¸é ¾î¶»°Ô µÉ±î¿ä Äõ¸® ¹®ÀÚ¿¿¡ ÁÁÁö ¾ÊÀº ½ºÅ©¸³Æ® ¹× HTMLÀÌ ÀÖ¾î »ç¿ëÀÚÀÇ ÄíÅ°¸¦ °ø°ÝÀÚ°¡ °¡Á®°¡ °ø°ÝÀÚÀÇ »çÀÌÆ®¿¡ °Ô½ÃÇÏ°Ô µÇ¸é »ç¿ëÀÚÀÇ °³ÀÎ ÄíÅ° Á¤º¸¸¦ °ø°ÝÀÚ°¡ °®°Ô µÇ°Å³ª ´õ ³ª»Û »óȲÀÌ ¹ß»ýÇÏ°Ô µË´Ï´Ù.
ÀÌ°ÍÀ» ¹æÁöÇÒ ¼ö ÀÖ´Â µÎ °¡Áö ¹æ¹ýÀÌ ÀÖ½À´Ï´Ù. ù°, ÀÔ·Â ³»¿ëÀ» ½Å·ÚÇÏÁö ¾Ê°í »ç¿ëÀÚÀÇ À̸§ÀÌ ¹«¾ùÀ¸·Î µÇ¾î ÀÖ´ÂÁö ½ÅÁßÈ÷ »ìÆì¾ß ÇÕ´Ï´Ù. ¿¹¸¦ µé¾î, ÀÏ¹Ý ½ÄÀ» »ç¿ëÇÏ¿© À̸§¿¡ ÀϹÝÀûÀÎ ¹®ÀÚ ÇÏÀ§ ÁýÇÕ¸¸ Æ÷ÇԵǾî ÀÖÀ¸¸ç Å©±â°¡ ³Ê¹« Å©Áö ¾ÊÀºÁö È®ÀÎÇÕ´Ï´Ù. ´ÙÀ½ C# ÄÚµå Á¶°¢À» »ç¿ëÇÏ¿© ÀÌ·¯ÇÑ ÀÛ¾÷À» ÇÒ ¼ö ÀÖ½À´Ï´Ù.
Regex r = new Regex(@"^[\w]{1,40}$");
if (r.Match(strName).Success)
{
// ÁÁ½À´Ï´Ù! ¿Ã¹Ù¸¥ ¹®ÀÚ¿ÀÔ´Ï´Ù.
} else {
// ÁÁÁö ¾Ê½À´Ï´Ù! À߸øµÈ ¹®ÀÚ¿ÀÔ´Ï´Ù.
}
ÀÌ Äڵ忡¼´Â ÀÏ¹Ý ½ÄÀ» »ç¿ëÇÏ¿© ¹®ÀÚ¿¿¡ 1°ú 40 »çÀÌÀÇ ¿µ¼ýÀÚ¸¸ Æ÷ÇԵǴÂÁö È®ÀÎÇÕ´Ï´Ù. ÀÌ ¹æ¹ý¸¸ÀÌ °ªÀÌ ¿Ã¹Ù¸¥Áö È®ÀÎÇÏ´Â ¾ÈÀüÇÑ ¹æ¹ýÀÔ´Ï´Ù.
ÀÌ Á¤±Ô½ÄÀ» ÅëÇØ HTML ¶Ç´Â ½ºÅ©¸³Æ®¸¦ È®ÀÎÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÏ¹Ý ½ÄÀ» »ç¿ëÇÏ¿© À߸øµÈ ¹®ÀÚ¸¦ ã°í, À߸øµÈ ¹®ÀÚ°¡ °Ë»öµÈ °æ¿ì¿¡´Â ¿äûÀ» °ÅºÎÇÏ´Â ÀÛ¾÷À» ÇÏÁö ¸»¾Æ¾ß ÇÕ´Ï´Ù. ¿Ö³ÄÇϸé ÀÌ·¯ÇÑ ÀÛ¾÷Àº ½Ç¼ö·Î ºü¶ß¸®´Â °æ¿ì°¡ Àֱ⠶§¹®ÀÔ´Ï´Ù.
µÎ ¹ø° ¹æ¹ýÀº ÀÔ·ÂÀÌ Ãâ·ÂÀ¸·Î »ç¿ëµÉ ¶§ ¸ðµç ÀÔ·ÂÀ» HTML ÀÎÄÚµùÇÏ´Â °ÍÀÔ´Ï´Ù. ÀÌ·¸°Ô Çϸé À§ÇèÇÑ HTML ű׸¦ ÁÙÀÏ ¼ö ÀÖ¾î À̽ºÄÉÀÌÇÁ ¹®ÀÚ¸¦ Á» ´õ ¾ÈÀüÇÏ°Ô ÇÒ ¼ö ÀÖ½À´Ï´Ù. Server.HTMLEncode°¡ ÀÖ´Â ASP ¶Ç´Â HttpServerUtility.HtmlEncode°¡ ÀÖ´Â ASP.NET¿¡¼ ¹®Á¦°¡ µÉ ¼ö ÀÖ´Â ¸ðµç ½ºÆ®¸µÀ» À̽ºÄÉÀÌÇÁÇÒ ¼ö ÀÖ½À´Ï´Ù.
4. sa »ç¿ë ±ÇÇÑ ºÒÇÊ¿ä
¸¶Áö¸· ÀÔ·Â Æ®·¯½ºÆ® °ø°ÝÀ¸·Î SQL ÁÖÀÔÀ» ¼³¸íÇÏ°Ú½À´Ï´Ù. ¸¹Àº °³¹ßÀÚµéÀÌ Microsoft SQL Server ¶Ç´Â Oracle°ú °°Àº ¹é¿£µå µ¥ÀÌÅÍ ÀúÀå¼Ò¿Í Åë½ÅÇϱâ À§ÇØ ÀÔ·ÂÀÌ ÇÊ¿äÇÑ Äڵ带 ÀÛ¼ºÇÏ°í ÇØ´ç ÀÔ·ÂÀ» »ç¿ëÇÏ¿© SQL Äõ¸®¸¦ ÀÛ¼ºÇÕ´Ï´Ù.
¾Æ·¡ÀÇ Äڵ带 »ìÆ캾½Ã´Ù.
void DoQuery(string Id)
{
SqlConn sql=new SqlConnection(@"data source=localhost;" + "user id=sa;password=password;");
sql.Open();
sqlstring= "SELECT hasshipped" + " FROM shipping WHERE id='" + Id + "'";
SqlCommand cmd = new SqlCommand(sqlstring,sql);
ÀÌ ÄÚµå´Â ¼¼ °¡Áö ½É°¢ÇÑ °áÇÔÀÌ ÀÖ½À´Ï´Ù. ù°, ½Ã½ºÅÛ °ü¸®ÀÚ °èÁ¤ÀÎ sa·Î Web Service¿¡¼ SQL Server·Î ¿¬°áÀÌ µÇ¾ú½À´Ï´Ù. ÀÌ ºÎºÐÀÌ ¿Ö °áÇÔÀÌ ÀÖ´ÂÁö °ð ¼³¸íÇÏ°Ú½À´Ï´Ù. µÑ°, sa °èÁ¤¿¡ ´ëÇÑ ¾ÏÈ£·Î "password"¸¦ »ç¿ëÇß½À´Ï´Ù.
±×·¯³ª ÀÌ Äڵ忡 °áÇÔÀÌ ÀÖ´Â °¡Àå Áß¿äÇÑ ¿øÀÎÀº SQL ¹®À» ÀÛ¼ºÇÏ´Â ½ºÆ®¸µ ¿¬°áÀÔ´Ï´Ù. »ç¿ëÀÚ°¡ 1001À̶ó´Â ID¸¦ ÀÔ·ÂÇÏ¸é ´ÙÀ½°ú °°Àº ¿Ã¹Ù¸¥ Çü½ÄÀÇ À¯È¿ÇÑ SQL ¹®ÀÌ Ç¥½ÃµË´Ï´Ù.
SELECT hasshipped FROM shipping WHERE id = '1001'
ÇÏÁö¸¸ °ø°ÝÀÚ´Â À̺¸´Ù ÈξÀ ¾Õ¼ »ý°¢ÇÕ´Ï´Ù. Áï, °ø°ÝÀÚ´Â ´ÙÀ½°ú °°Àº ÁúÀǸ¦ ½ÇÇàÇÏ´Â "'1001' DROP table shipping --" ID¸¦ ÀÔ·ÂÇÕ´Ï´Ù.
SELECT hasshipped FROM shipping WHERE id = '1001' DROP table shipping --';
ÀÌ·¸°Ô Çϸé ÁúÀÇ°¡ ÀÛµ¿ÇÏ´Â ¹æ¹ýÀÌ º¯°æµË´Ï´Ù. ÀÌ ÄÚµå´Â Àü´ÞµÈ »çÇ×ÀÌ ÀÖ´ÂÁö È®ÀÎÇÒ »Ó¸¸ ¾Æ´Ï¶ó Àü´Þ Å×ÀÌºíµµ »èÁ¦ÇÕ´Ï´Ù. -- ¿¬»êÀÚ´Â SQLÀÇ ¼³¸í ¿¬»êÀڷμ °ø°ÝÀÚ·Î ÇÏ¿©±Ý À¯È¿ÇÏÁö¸¸ À§ÇèÇÑ ÀÏ·ÃÀÇ SQL ¹®À» ÀÛ¼ºÇϵµ·Ï ÇÕ´Ï´Ù.
ÀÌÁ¦ SQL Server µ¥ÀÌÅͺ£À̽º¿¡¼ Å×À̺íÀ» »èÁ¦ÇÏ´Â ¹æ¹ýÀ» ¾Ë¾Æº¸°Ú½À´Ï´Ù. °ü¸®ÀÚ¸¸ÀÌ Å×ÀÌºí »èÁ¦ ÀÛ¾÷À» ÇÒ ¼ö ÀÖ½À´Ï´Ù. ÇÏÁö¸¸ ¿©±â¿¡¼´Â sa·Î µ¥ÀÌÅͺ£À̽º¿¡ ¿¬°áÇÏ¿© sa°¡ SQL Server µ¥ÀÌÅͺ£À̽º¿¡¼ ¾î¶² ÀÛ¾÷µµ ÇÒ ¼ö ÀÖ½À´Ï´Ù. sa·Î ÀÀ¿ë ÇÁ·Î±×·¥¿¡¼ SQL Server·Î ¿¬°áÇÏÁö ¾Ê¾Æ¾ß ÇÕ´Ï´Ù. ´ë½Å ÀûÇÕÇÑ Windows ÅëÇÕ ÀÎÁõÀ» »ç¿ëÇϰųª ÀûÀýÈ÷ Á¦ÇÑµÈ ±Ç¸®°¡ ÀÖ´Â ¹Ì¸® Á¤ÀÇµÈ °èÁ¤À¸·Î ¿¬°áÇØ¾ß ÇÕ´Ï´Ù.
SQL ÁÖÀÔ ¹®Á¦¸¦ ½±°Ô ÇØ°áÇÒ ¼ö ÀÖ½À´Ï´Ù. ¾Æ·¡ÀÇ Äڵ忡¼´Â SQL ÀúÀå ÇÁ·Î½ÃÀú ¹× ¸Å°³ º¯¼ö¸¦ »ç¿ëÇÏ¿© ÀÌ·¯ÇÑ Äõ¸®¸¦ ÀÛ¼ºÇÏ´Â ¹æ¹ýÀ» º¸¿©ÁÝ´Ï´Ù. ¶ÇÇÑ ÀÌ Äڵ忡¼´Â 4ÀÚ¸®¿Í 10ÀÚ¸® »çÀÌÀÇ ¼ýÀÚ·Î µÈ Àü´Þ ID¸¸ °Ë»öÇϹǷΠÀÏ¹Ý ½ÄÀ» »ç¿ëÇÏ¿© ÀÔ·ÂÀÌ À¯È¿ÇÑÁö È®ÀÎÇÏ´Â ¹æ¹ýÀ» º¸¿©ÁÝ´Ï´Ù.
Regex r = new Regex(@"^\d{4,10}$");
if (!r.Match(Id).Success) throw new Exception("À߸øµÈ ID");
SqlConnection sqlConn = new SqlConnection(strConn);
string str = "sp_HasShipped";
SqlCommand cmd = new SqlCommand(str,sqlConn);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add("@ID",Id);
¹öÆÛ ¿À¹ö·±, »çÀÌÆ® °£ ½ºÅ©¸³Æ®, SQL ÁÖÀÔ °ø°ÝÀº ÀÔ·Â Æ®·¯½ºÆ®ÀÇ ¿¹ÀÔ´Ï´Ù. ÀÌ·¯ÇÑ °ø°Ý¿¡¼ ¸ðµç ÀÔ·Â »çÇ×ÀÌ ¿Ã¹Ù¸¥ °ÍÀ̶ó°í Áõ¸íµÉ ¶§±îÁö´Â À߸øµÈ °ÍÀ̶ó°í ¹Ï¾î¾ß ÇÕ´Ï´Ù.
5. Crypto ÄÚµå ÁÖÀÇ
ÀÌÁ¦ ¿ì¸®°¡ Àß ¾Ë°í ÀÖ´Â »çÇ׿¡ ´ëÇØ »ìÆ캾´Ï´Ù. ¿ì¸®°¡ °ËÅäÇÏ´Â º¸¾È ÄÚµåÀÇ 30% ÀÌ»ó¿¡ º¸¾È»óÀÇ °áÇÔÀÌ ÀÖ½À´Ï´Ù. °¡Àå ÀϹÝÀûÀÎ °áÇÔÀº ÇöÁö ¾ÏÈ£È ÄÚµå·Î¼ ÀÌ ÄÚµå´Â ´ëü·Î ¸Å¿ì Ãë¾àÇÏ¿© °ø°Ý´çÇϱ⠽±½À´Ï´Ù. »ç¿ëÀÚ ÀÚ½ÅÀÇ ¾ÏÈ£È Äڵ带 ¿Ã¹Ù¸£°Ô »ç¿ëÇÒ ¼ö ¾øÀ¸¹Ç·Î ÀÛ¼ºÇÏÁö ¸»¾Æ¾ß ÇÕ´Ï´Ù. »ç¶÷µéÀÌ ÀÌÇØÇÏÁö ¸øÇÏ´Â ¾ÏÈ£È ¾Ë°í¸®ÁòÀ» ÀÛ¼ºÇ߱⠶§¹®Àº ¾Æ´Õ´Ï´Ù. °ø°ÝÀÚµéÀº µð¹ö°Å¿¡ ¾×¼¼½ºÇÏ°í ½Ã°£ ¹× Áö½ÄÀ» µé¿© ½Ã½ºÅÛÀÌ Á¤È®È÷ ¾î¶»°Ô ÀÛµ¿ÇÏ´ÂÁö °áÁ¤ÇÏ¸ç ¸î ½Ã°£¸¸¿¡ ½Ã½ºÅÛÀ» °ø°ÝÇÏ´Â °æ¿ì°¡ ÀÖ½À´Ï´Ù. µû¶ó¼ Win32 ÀÀ¿ë ÇÁ·Î±×·¥¿ë CryptoAPI¸¦ »ç¿ëÇÏ¿© System.Security.Cryptography ³×ÀÓ½ºÆäÀ̽º¿¡ Á¦´ë·Î ÀÛ¼ºµÇ°í ¿Ã¹Ù¸£°Ô Å×½ºÆ®µÈ ¾ÏÈ£È ¾Ë°í¸®ÁòÀÌ ÀÖµµ·Ï ÇØ¾ß ÇÕ´Ï´Ù.
6. »ç¿ëÀÚÀÇ °ø°Ý ÇÁ·ÎÇÊ °¨¼Ò
Ŭ¶óÀ̾ðÆ® Áß 90%°¡ ÇÊ¿ä·Î ÇÏÁö ¾Ê´Â ±â´ÉÀº ±âº»ÀûÀ¸·Î ¼³Ä¡µÇ¾î¼´Â ¾ÈµË´Ï´Ù. ÀÎÅÍ³Ý Á¤º¸ ¼ºñ½º(IIS) 6.0Àº ÀÌ·¯ÇÑ ¼³Ä¡ °èȹÀ» µû¸¨´Ï´Ù. ÀÌ¿¡ ´ëÇÑ ÀÚ¼¼ÇÑ ³»¿ëÀº ÀÌ´Þ¿¡ ¹ßÇàµÈ Wayne BerryÀÇ ±â»ç "Innovations in Internet Information Services Let You Tightly Guard Secure Data and Server Processes"¸¦ ÂüÁ¶ÇϽʽÿÀ. ÀÌ ¼³Ä¡ ¹æ¹ý À̸鿡 ÀÖ´Â »ý°¢Àº »ç¿ëÇÏÁö ¾Ê´Â ¼ºñ½º¸¦ ½ÇÇàÇÏ¿© »ç¿ëÀÚ°¡ °ü½ÉÀ» µÎÁö ¾Ê´Â ¼ºñ½º¸¦ È°¿ëÇÒ ¼ö ÀÖ´Ù´Â °ÍÀÔ´Ï´Ù. ÀÌ ±â´ÉÀÌ ±âº»ÀûÀ¸·Î ¼³Ä¡µÈ °æ¿ì, ÃÖ¼ÒÇÑÀÇ ±ÇÇÑ ¿øÄ¢ ¾Æ·¡ ÀÛµ¿µÇ¾î¾ß ÇÕ´Ï´Ù. ´Ù½Ã ¸»ÇØ, °ü¸® ±ÇÇÑÀÌ ÇÊ¿äÇÏÁö ¾ÊÀ¸¸é °ü¸® ±ÇÇÑÀ¸·Î ÀÀ¿ë ÇÁ·Î±×·¥À» ½ÇÇàÇÒ ÇÊ¿ä´Â ¾ø½À´Ï´Ù. ÀÌ ÁÖÀÇ »çÇ×À» À¯³äÇØ¾ß ÇÕ´Ï´Ù.
7. ÃÖ¼ÒÇÑÀÇ ±ÇÇÑ ¿øÄ¢ »ç¿ë
¿î¿µ üÁ¦ ¹× °ø¿ë ¾ð¾î ·±Å¸ÀÓ(CLR)¿¡´Â ¸î °¡Áö ÀÌÀ¯·Î ÀÎÇÑ º¸¾È Á¤Ã¥ÀÌ ÀÖ½À´Ï´Ù. ¸¹Àº »ç¶÷µéÀÌ º¸¾È Á¤Ã¥ÀÌ Á¸ÀçÇÏ´Â ÀÌÀ¯´Â »ç¿ëÀÚ°¡ ÀǵµÀûÀ¸·Î À¯ÇØÇÑ ÀÏ Áï, ¾×¼¼½º°¡ Çã¿ëµÇÁö ¾Ê´Â ÆÄÀÏ¿¡ ¾×¼¼½ºÇÏ°í ÇÊ¿ä¿¡ µû¶ó ÀÓÀÇ·Î ³×Æ®¿öÅ©¸¦ À籸¼ºÇϰųª ±âŸ À¯ÇØÇÑ ÇàÀ§¸¦ ÇÏÁö ¸øÇϵµ·Ï ¹æÁöÇÏ´Â °ÍÀ̶ó°í »ý°¢ÇÕ´Ï´Ù. ÀϹÝÀûÀÎ ³»ºÎ °ø°ÝÀ» ¹æÁöÇØ¾ß ÇÑ´Ù´Â °Íµµ ÇÑ °¡Áö ÀÌÀ¯°¡ µÉ ¼ö ÀÖÁö¸¸ º¸¾È Á¤Ã¥À» °·ÂÈ÷ À¯ÁöÇØ¾ß ÇÏ´Â ¶Ç ´Ù¸¥ ÀÌÀ¯°¡ ÀÖ½À´Ï´Ù. º¸¾È Á¤Ã¥Àº ÄÚµå ÁÖº¯¿¡ ¹æ¾îº®À» ½×¾Æ »ç¿ëÀÚ°¡ °íÀÇ ¶Ç´Â ÈçÈ÷ ½Ç¼ö·Î ³×Æ®¿öÅ©¿¡ Çظ¦ ÁÖÁö ¾Êµµ·Ï ÇÏ´Â °ÍÀÔ´Ï´Ù. ¿¹¸¦ µé¾î, Alice¶ó´Â »ç¶÷ÀÇ ½Ã½ºÅÛ¿¡¼ ÀüÀÚ ¸ÞÀÏÀ» ÅëÇØ ´Ù¿î·ÎµåÇÏ¿© ½ÇÇàÇÑ Ã·ºÎ ÆÄÀÏÀº Alice°¡ ¾×¼¼½ºÇÒ ¼ö ÀÖ´Â ¸®¼Ò½º¿¡¸¸ ¾×¼¼½ºÇÒ ¼ö ÀÖµµ·Ï Á¦Çѵ˴ϴÙ. ÷ºÎ ÆÄÀÏ¿¡ Æ®·ÎÀÌ ¸ñ¸¶°¡ ÀÖ´Â °æ¿ì ÁÁÀº º¸¾È Á¤Ã¥ÀÌ ½Ã½ºÅÛÀÇ ¼Õ»óÀ» Á¦ÇÑÇÏ°Ô µË´Ï´Ù.
¼¹ö ÀÀ¿ë ÇÁ·Î±×·¥À» ¼³°è, ÀÛ¼º ¹× ¹èÆ÷ÇÒ ¶§, ÀûÇÕÇÑ »ç¿ëÀÚ¸¸ ¿äûÀ» º¸³¾ ¼ö ÀÖ´Â °ÍÀº ¾Æ´Õ´Ï´Ù. °ø°ÝÀÚ°¡ ¾ÇÀǸ¦ °¡Áö°í À߸øµÈ ¿äûÀ» º¸³»¸é »ç¿ëÀÚÀÇ Äڵ尡 ¿Àµ¿ÀÛÀ» ÀÏÀ¸Å°´Â °æ¿ì, »ç¿ëÀÚ´Â ¼Õ»óÀ» Á¦ÇÑÇϱâ À§ÇØ ÀÀ¿ë ÇÁ·Î±×·¥¿¡ °¡´ÉÇÑ ¸ðµç ¹æ¾îº®À» ½×¾Æ¾ß ÇÕ´Ï´Ù. ȸ»ç°¡ º¸¾È Á¤Ã¥À» ½ÇÇàÇÏ´Â ÀÌÀ¯°¡ ±×Àú »ç¿ëÀÚ ¶Ç´Â »ç¿ëÀÚÀÇ Äڵ带 ½Å·ÚÇÏÁö ¾Ê±â ¶§¹®¸¸ÀÌ ¾Æ´Ï¶ó´Â °ÍÀÔ´Ï´Ù. ¿ÜºÎÀο¡ ÀÇÇØ ÀÌ¿ëµÇ´Â Äڵ忡 ´ëÇØ º¸È£ÇÏ·Á´Â ¸ñÀûµµ ÀÖ½À´Ï´Ù.
ÃÖ¼ÒÇÑÀÇ ±ÇÇÑ ¿øÄ¢À̶õ ÁÖ¾îÁø ±ÇÇÑÀº ÃÖ¼ÒÇÑ ÇÊ¿äÇÑ ¸¸ÅÀÇ ½Ã°£µ¿¾È ÃÖ¼ÒÇÑ ÇÊ¿äÇÑ ¸¸ÅÀÇ Äڵ忡¸¸ Çã¿ëµÇ¾î¾ß ÇÑ´Ù´Â °ÍÀÔ´Ï´Ù. ´Ù½Ã ¸»ÇØ, ¾ðÁ¦µçÁö ÁöÁ¤µÈ ½Ã°£¿¡ °¡´ÉÇÑ Äڵ忡 ¹æ¾îº®À» ¸¹ÀÌ ½×¾Æ¾ß ÇÕ´Ï´Ù. ¹®Á¦°¡ ¹ß»ýÇßÀ» ¶§ ¹Ì¸® ½×¾Æ³õÀº ÀÌ·¯ÇÑ ¹æ¾îº®ÀÌ µµ¿òÀÌ µÉ °ÍÀÔ´Ï´Ù. µû¶ó¼ ÃÖ¼ÒÇÑÀÇ ±ÇÇÑÀ¸·Î Äڵ带 ½ÇÇàÇÏ´Â µ¥ ´ëÇÑ ¸î °¡Áö ±¸Ã¼ÀûÀÎ »ý°¢À» ¼³¸íÇÏ°Ú½À´Ï´Ù. ÀÛ¾÷À» ¿Ï·áÇÏ´Â µ¥ ÇÊ¿äÇÑ ¸®¼Ò½º¿¡¸¸ ¾×¼¼½º¸¦ Çã¿ëÇÏ´Â ¼¹ö Äڵ忡 ´ëÇÑ º¸¾È ÄÁÅؽºÆ®¸¦ ¼±ÅÃÇÕ´Ï´Ù. ÀϺΠÄڵ忡 ´õ ¸¹Àº ±ÇÇÑÀÌ ÇÊ¿äÇϸé ÇØ´ç Äڵ带 °è¼öÈÇÏ¿© ´õ ³ôÀº ¼öÁØÀÇ ±ÇÇÑÀ¸·Î ½ÇÇàÇÕ´Ï´Ù. ´Ù¸¥ ¿î¿µ üÁ¦ ÀÚ°Ý Áõ¸íÀ¸·Î ½ÇÇàÇÏ´Â Äڵ带 ¾ÈÀüÇÏ°Ô ºÐ¸®ÇÏ·Á¸é ´õ ¸¹Àº ±ÇÇÑÀÌ ºÎ¿©µÈ º¸¾È ÄÁÅؽºÆ®¿¡¼ ½ÇÇàµÇ´Â º°µµÀÇ ÇÁ·Î¼¼½º·Î ÀÌ Äڵ带 ½ÇÇàÇÏ¸é µË´Ï´Ù. Áï, COM ¶Ç´Â Microsoft .NET ¿ø°Ý µî°ú °°Àº ÇÁ·Î¼¼½º °£ Åë½ÅÀÌ ÇÊ¿äÇϸç ÃÖ¼ÒÇÑÀÇ ¿Õº¹À» À¯ÁöÇϱâ À§ÇØ ÇØ´ç Äڵ忡 ´ëÇÑ ÀÎÅÍÆäÀ̽º¸¦ µðÀÚÀÎÇØ¾ß ÇÕ´Ï´Ù.
.NET Framework¸¦ »ç¿ëÇÏ¿© Äڵ带 ¾î¼Àºí¸®¿¡ °è¼öÈÇÏ´Â °æ¿ì, °¢ ÄÚµå Á¶°¢¿¡ ÇÊ¿äÇÑ ¼öÁØÀÇ ±ÇÇÑÀ» °í·ÁÇØ¾ß ÇÕ´Ï´Ù. ³ôÀº ±ÇÇÑÀÌ ÇÊ¿äÇÑ Äڵ带 ´õ ¸¹Àº »ç¿ë ±ÇÇÑÀ» Çã¿ëÇÒ ¼ö ÀÖ´Â º°µµÀÇ ¾î¼Àºí¸®¿¡ ½±°Ô ºÐ¸®ÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÌ·¸°Ô Çϸé ÀûÀº ±ÇÇÑÀ¸·Îµµ ´ëºÎºÐÀÇ ¾î¼Àºí¸®¸¦ ½ÇÇàÇÒ ¼ö ÀÖ¾î Äڵ忡 ´õ ¸¹Àº ¹æ¾îº®À» Ãß°¡ÇÒ ¼ö ÀÖ½À´Ï´Ù. ±×¸² 1°ú °°ÀÌ ¾î¼Àºí¸® ¼öÁØ »ç¿ë ±ÇÇÑ ¿äûÀ» ÅëÇØ Æ¯Á¤ ¾î¼Àºí¸®ÀÇ ±ÇÇÑÀ» ½±°Ô Á¦ÇÑÇÒ ¼ö ÀÖ½À´Ï´Ù. ±×¸² 2´Â ÀÌ·¯ÇÑ »ç¿ë ±ÇÇÑ ¿äû¿¡ »ç¿ëÇÏ´Â XML ÆÄÀÏÀ» ÀÛ¼ºÇÏ´Â ¹æ¹ýÀ» º¸¿©ÁÝ´Ï´Ù. ÀÌ ÀÛ¾÷À» ÇÏ´Â °æ¿ì, ÄÚµå ¾×¼¼½º º¸¾È(CAS) ½ºÅà ¿öÅ©·Î ÀÎÇØ »ç¿ëÀÚ ÀÚ½ÅÀÇ ¾î¼Àºí¸®ÀÇ »ç¿ë ±ÇÇѸ¸ Á¦ÇÑÇÏ´Â °ÍÀÌ ¾Æ´Ï¶ó È£ÃâÇÑ ¸ðµç ¾î¼Àºí¸®ÀÇ »ç¿ë ±ÇÇѵµ Á¦ÇÑÇÏ´Â °ÍÀÔ´Ï´Ù.
¸¹Àº »ç¶÷µéÀÌ Á¦Ç°ÀÌ Å×½ºÆ®µÇ°í ¹è´ÞµÈ ÈÄ¿¡ »õ·Î¿î ±¸¼º ¿ä¼Ò°¡ Ç÷¯±× À뵃 ¼ö ÀÖµµ·Ï ÀÀ¿ë ÇÁ·Î±×·¥À» ÀÛ¼ºÇÕ´Ï´Ù. ¹ö±× ¹× º¸¾È ÇãÁ¡À» ã±â À§ÇØ ¸ðµç ÄÚµå °æ·Î¸¦ Å×½ºÆ®ÇÒ ¼ö ÀÖ´Â ¹æ¹ýÀº ¾ø±â ¶§¹®¿¡ ÀÌ·¯ÇÑ ÀÀ¿ë ÇÁ·Î±×·¥À» º¸È£ÇÏ´Â °ÍÀº ¸Å¿ì ¾î·Á¿î ÀÏÀÔ´Ï´Ù. ÇÏÁö¸¸ ÀÀ¿ë ÇÁ·Î±×·¥ÀÌ °ü¸®µÇ´Â °æ¿ì¿¡´Â CLRÀÌ Á¦°øÇÏ´Â ±â´ÉÀ» »ç¿ëÇÏ¿© ÀÌ·¯ÇÑ È®À强À» Àá±Þ´Ï´Ù. »ç¿ë ±ÇÇÑ °³Ã¼ ¶Ç´Â »ç¿ë ±ÇÇÑ ÁýÇÕÀ» ¼±¾ðÇÏ°í PermitOnly ¶Ç´Â Deny¸¦ È£ÃâÇÏ¿©, È£ÃâÇÏ´Â ¸ðµç Äڵ忡 Çã¿ëµÈ »ç¿ë ±ÇÇÑÀ» Á¦ÇÑÇÏ´Â ½ºÅÿ¡ Ç¥½ÄÀ» Ãß°¡ÇÕ´Ï´Ù. ÀϺΠÇ÷¯±× ÀÎÀ» È£ÃâÇϱâ Àü¿¡ ÀÌ ÀÛ¾÷À» ½ÇÇàÇÏ¿© Ç÷¯±× ÀÎÀÌ ÇÒ ¼ö ÀÖ´Â ÀÛ¾÷À» Á¦ÇÑÇÒ ¼ö ÀÖ½À´Ï´Ù. ¿¹¸¦ µé¾î, ÁöºÒ °è»êÀ» ÇØ¾ß ÇÏ´Â Ç÷¯±× ÀÎÀº ÆÄÀÏ ½Ã½ºÅÛ¿¡ ¾×¼¼½ºÇÒ ÇÊ¿ä°¡ ¾ø½À´Ï´Ù. ÀÌ°ÍÀº ÃÖ¼ÒÇÑÀÇ ±ÇÇÑÀÇ ´Ù¸¥ ¿¹·Î¼ »ç¿ëÀÚ ÀÚ½ÅÀ» ¹Ì¸® º¸È£ÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÌ·¯ÇÑ Á¦ÇÑ »çÇ×À» ¹®¼ÈÇÏ°í ¸¹Àº ±ÇÇÑÀÌ ÁÖ¾îÁø Ç÷¯±× ÀÎÀº ¾î¼È¼Ç ¹®ÀÌ ÀÖ´Â ÀÌ·¯ÇÑ Á¦ÇÑÀ» ±Øº¹ÇÒ ¼ö ÀÖ´Ù´Â °ÍÀ» ¸í½ÉÇØ¾ß ÇÕ´Ï´Ù.
8. ½ÇÆÐ ¸ðµå¿¡ ÁÖÀÇ
¿À·ù ó¸® Äڵ带 ÀÛ¼ºÇϱ⠽ȾîÇÏ´Â °ÍÀ» ÀÎÁ¤ÇØ¾ß ÇÕ´Ï´Ù. Äڵ尡 ½ÇÆÐÇÏ´Â °æ¿ì´Â ¸¹½À´Ï´Ù. Äڵ尡 ½ÇÆÐÇÏ¸é ½Ç¸ÁÇÏ´Â °ÍÀº ´ç¿¬ÇÑ °ÍÀÔ´Ï´Ù. ¿ì¸® ÀÚ½ÅÀ» Æ÷ÇÔÇؼ ´ëºÎºÐÀÇ ÇÁ·Î±×·¡¸ÓµéÀº ÀϹÝÀûÀÎ ½ÇÇà °æ·Î¿¡ ÃÊÁ¡À» ¸ÂÃß·Á ÇÕ´Ï´Ù. ½ÇÁ¦ ÀÛ¾÷ÀÌ ±× °÷¿¡¼ ÀÌ·ç¾îÁö±â ¶§¹®ÀÔ´Ï´Ù. °¡´ÉÇÑ ½Å¼ÓÇÏ°í ¼Õ½±°Ô ¿À·ù¸¦ ó¸®ÇÑ ´ÙÀ½ ½ÇÁ¦ ÄÚµåÀÇ ´ÙÀ½ ÁÙ·Î À̵¿ÇÏ´Â °ÍÀº ¾Æ½±°Ôµµ ¾ÈÀüÇÑ »ç°í ¹æ½ÄÀÌ ¾Æ´Õ´Ï´Ù. ¿ì¸®´Â ÄÚµåÀÇ ½ÇÆÐ ¸ðµå¿¡ ¸¹Àº ÁÖÀǸ¦ ±â¿ï¿©¾ß ÇÕ´Ï´Ù. ÀÌ·¯ÇÑ ÄÚµå Á¶°¢µéÀº ¼¼ºÎÀûÀÎ »çÇ׿¡ ÁÖÀǸ¦ ±â¿ïÀÌÁö ¾Ê°í ÀÛ¼ºÇÑ °ÍÀ¸·Î¼ ¿ÏÀüÈ÷ Å×½ºÆ®µÇÁö ¾Ê½À´Ï´Ù. ¸ðµç »ç¼ÒÇÑ ¿À·ù 󸮱⸦ Æ÷ÇÔÇÏ¿© ÇÔ¼öÀÇ ¸ðµç ÄÚµå ÁÙ¿¡¼ µð¹ö°Å¸¦ ´Ü°èº°·Î ½ÇÇàÇÑ ¶§°¡ ¸¶Áö¸·À¸·Î ¾ðÁ¦ÀÎÁö »ý°¢ÇØ º¸½Ê½Ã¿À.
Å×½ºÆ®µÇÁö ¾ÊÀº ÄÚµå´Â º¸¾È Ãë¾à¼ºÀ» À¯¹ß½Ãų ¼ö ÀÖ½À´Ï´Ù. ÀÌ ¹®Á¦¸¦ ¿ÏÈÇÒ ¼ö ÀÖ´Â ¼¼ °¡Áö ¹æ¹ýÀÌ ÀÖ½À´Ï´Ù. ù°, ÀÏ¹Ý Äڵ忡 ´ëÇØ ¸¹Àº ½Å°æÀ» ¾²´Â ¸¸Å »ç¼ÒÇÑ ¿À·ù 󸮱⿡µµ ¸¹Àº °ü½ÉÀ» µÎ¾î¾ß ÇÕ´Ï´Ù. ¿À·ù ó¸® Äڵ尡 ½ÇÇàµÇ¾úÀ» ¶§ÀÇ ½Ã½ºÅÛ »óŸ¦ »ý°¢ÇØ º¸½Ê½Ã¿À. ½Ã½ºÅÛÀ» º¸¾È »óÅ·ΠµÎ½Ã°Ú½À´Ï±î µÑ°, ÇÔ¼ö¸¦ ÀÛ¼ºÇϸé ÇÔ¼ö¿¡¼ ´Ü°èº°·Î µð¹ö°Å¸¦ ½ÇÇàÇÏ¿© ¸ðµç ¿À·ù 󸮱⸦ È®½ÇÈ÷ ã¾Æ¾ß ÇÕ´Ï´Ù. ÀÌ ±â¼ú·Îµµ ¹Ì¹¦ÇÑ ½Ã°£ ¿À·ù´Â ÇØ°áÇÏÁö ¸øÇÒ ¼öµµ ÀÖ½À´Ï´Ù. À¯ÇØÇÑ Àμö¸¦ ÇÔ¼ö¿¡ Àü´ÞÇϰųª ¿À·ù 󸮱⸦ ½ÇÇàÇϵµ·Ï ÇÏ´Â ¹æ¹ýÀ¸·Î ½Ã½ºÅÛ »óŸ¦ Á¶Á¤ÇØ¾ß ÇÏ´Â °æ¿ìµµ ÀÖ½À´Ï´Ù. ÃæºÐÇÑ ½Ã°£Àû ¿©À¯¸¦ °¡Áö°í Äڵ带 ´Ü°èº°·Î ½ÇÇàÇÏ¿©, ½Ã½ºÅÛÀÌ ½ÇÇàµÉ ¶§ ½Ã½ºÅÛ »óÅ ¹× Äڵ带 õõÈ÷ »ìÆ캸½Ê½Ã¿À. µð¹ö°ÅÀÇ Äڵ带 ´Ü°èº°·Î ½ÇÇàÇÏ¿© ÇÁ·Î±×·¡¹Ö ³í¸®¿¡¼ ¸¹Àº °áÇÔÀ» ã¾Æ ¿Ô½À´Ï´Ù. µû¶ó¼ ÀÌ ±â¼úÀº ÀÔÁõµÈ ±â¼úÀÔ´Ï´Ù. ÀÌ ±â¼úÀ» »ç¿ëÇϽʽÿÀ. ¼Â°, Å×½ºÆ®·Î ÀÎÇØ ÇÔ¼ö°¡ ½ÇÆÐÇϵµ·Ï ÇϽʽÿÀ. Å×½ºÆ®°¡ ÇÔ¼ö¿¡ ÀÖ´Â ¸ðµç ÄÚµå ÁÙ¸¶´Ù ½ÇÇàÇϵµ·Ï ÇϽʽÿÀ. ÀÌ·¯ÇÑ ÀÛ¾÷À» ÅëÇØ, ƯÈ÷ Å×½ºÆ®¸¦ ÀÚµ¿ÈÇÏ¿© ¸ðµç ºôµå ÈÄ¿¡ ½ÇÇàÇϸé ȸ±Í¸¦ ã´Â µ¥ µµ¿òÀÌ µË´Ï´Ù.
½ÇÆÐ ¸ðµå¿¡ ´ëÇÑ ¸Å¿ì Áß¿äÇÑ »ç½ÇÀÌ Çϳª ´õ ÀÖ½À´Ï´Ù. Äڵ尡 ½ÇÆÐÇÒ °æ¿ì, ½Ã½ºÅÛÀº ÃÖ»óÀÇ º¸¾È »óÅ¿¡ ÀÖ°Ô µË´Ï´Ù. ´ÙÀ½Àº À¯ÇØ ÄÚµåÀÇ ¿¹ÀÔ´Ï´Ù.
bool accessGranted = true; // ³«°üÀû
try
{
// c:\test.txt¿¡ ¾×¼¼½ºÇß´ÂÁö È®ÀÎÇÕ´Ï´Ù.
new FileStream(@"c:\test.txt", FileMode.Open, FileAccess.Read).Close();
}
catch (SecurityException x)
{
// ¾×¼¼½º°¡ °ÅºÎµÇ¾ú½À´Ï´Ù. accessGranted = false;
} catch (...)
{
// ´Ù¸¥ ÀÏÀÌ ¹ß»ýÇß½À´Ï´Ù.
}
CLRÀÇ °æ¿ì ÇØ´ç ÆÄÀÏ¿¡ ´ëÇÑ ¾×¼¼½º¸¦ Çã¿ëÇß´Ù°í °¡Á¤ÇØ º¾½Ã´Ù. ÀÌ °æ¿ì, SecurityExceptionÀÌ throwµÇÁö ¾Ê½À´Ï´Ù. ÇÏÁö¸¸ ÆÄÀÏÀÇ ÀÓÀÇ ¾×¼¼½º ÄÁÆ®·Ñ ¸ñ·Ï(DACL)¿¡ ¾×¼¼½ºÇÒ ¼ö ¾ø´Â °æ¿ì¸¦ ¿¹·Î µé¾î º¾½Ã´Ù. ÀÌ·¯ÇÑ °æ¿ì ´Ù¸¥ À¯ÇüÀÇ ¿¹¿Ü°¡ throwµË´Ï´Ù. ÇÏÁö¸¸ ù ¹ø° ÄÚµå ÁÙ¿¡¼ ³«°üÀû °¡Á¤À» Ç߱⠶§¹®¿¡ ÀÌ »ç½ÇÀ» ¾Ë ¼ö°¡ ¾ø½À´Ï´Ù.
´õ ÁÁÀº ¹æ¹ýÀº ÀÌ Äڵ带 ºñ°üÀûÀ¸·Î ÀÛ¼ºÇÏ´Â °ÍÀÔ´Ï´Ù.
bool accessGranted = false;
// ºñ°üÀû
try
{
// c:\test.txt¿¡ ¾×¼¼½ºÇß´ÂÁö È®ÀÎÇÕ´Ï´Ù.
new FileStream(@"c:\test.txt", FileMode.Open, FileAccess.Read).Close();
// ÀÌ ¸ðµå¿¡ °è¼Ó ÀÖ´Â °æ¿ì ¼º°øÇÑ °ÍÀÔ´Ï´Ù.
accessGranted = true;
} catch (...) {}
ÀÌ ¹æ¹ýÀº ½ÇÆи¦ ÇÏ´õ¶óµµ °¡Àå ¾ÈÀüÇÑ ¸ðµå·Î ´Ù½Ã À̵¿Çϱ⠶§¹®¿¡ ÈξÀ ´õ È®½ÇÇÑ ¹æ¹ýÀÔ´Ï´Ù.
9. Ãë¾àÇÑ °¡Àå
¼¹ö ÀÀ¿ë ÇÁ·Î±×·¥À» ÀÛ¼ºÇÒ ¶§ °¡ÀåÀ̶ó°í ÇÏ´Â WindowsÀÇ Æí¸®ÇÑ ±â´ÉÀ» Á÷Á¢ÀûÀ¸·Î³ª °£Á¢ÀûÀ¸·Î »ç¿ëÇÏ´Â °æ¿ì°¡ ÀÖ½À´Ï´Ù. °¡ÀåÀ̶ó´Â ±â´ÉÀ» »ç¿ëÇϸé ÇÁ·Î¼¼½ºÀÇ °¢ ½º·¹µå¸¦ º°µµÀÇ º¸¾È ÄÁÅؽºÆ®(ÀϹÝÀûÀ¸·Î Ŭ¶óÀ̾ðÆ®ÀÇ º¸¾È ÄÁÅؽºÆ®)¿¡¼ ½ÇÇàÇÒ ¼ö ÀÖ½À´Ï´Ù. ¿¹¸¦ µé¾î, ÆÄÀÏ ½Ã½ºÅÛ ¸®µð·ºÅÍ°¡ ³×Æ®¿öÅ©¸¦ ÅëÇØ ÆÄÀÏ ¿äûÀ» ¹ÞÀ¸¸é, ÆÄÀÏ ½Ã½ºÅÛ ¸®µð·ºÅÍ°¡ ¿ø°Ý Ŭ¶óÀ̾ðÆ®¸¦ ÀÎÁõÇÏ°í Ŭ¶óÀ̾ðÆ®ÀÇ ¿äûÀÌ °øÀ¯ DACL¿¡ À§¹èµÇÁö ¾Ê´ÂÁö È®ÀÎÇÑ ´ÙÀ½, ¿äûÀ» ó¸®ÇÏ´Â ½º·¹µå¿¡ Ŭ¶óÀ̾ðÆ® ÅäÅ«À» ÷ºÎÇÏ¿© Ŭ¶óÀ̾ðÆ®¸¦ °¡ÀåÇÕ´Ï´Ù. ÀÌ ½º·¹µå´Â Ŭ¶óÀ̾ðÆ®ÀÇ º¸¾È ÄÁÅؽºÆ®¸¦ »ç¿ëÇÏ¿© ¼¹öÀÇ ·ÎÄà ÆÄÀÏ ½Ã½ºÅÛ¿¡ ¾×¼¼½ºÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÌ ¹æ¹ýÀº ·ÎÄà ÆÄÀÏ ½Ã½ºÅÛÀÌ ¾ÈÀüÇÏ°Ô µÇ¹Ç·Î Æí¸®ÇÕ´Ï´Ù. ¶ÇÇÑ ¿äûÇÒ ¾×¼¼½º À¯Çü, ÆÄÀÏÀÇ DACL, ½º·¹µåÀÇ °¡Àå ÅäÅ«À» °í·ÁÇÏ¿© ¾×¼¼½º È®ÀÎÀ» ÇÕ´Ï´Ù. ¾×¼¼½º È®ÀÎÀÌ ½ÇÆÐÇÏ¸é ·ÎÄà ÆÄÀÏ ½Ã½ºÅÛÀº ÀÌ »çÇ×À» ÆÄÀÏ ½Ã½ºÅÛ ¸®µð·ºÅÍ¿¡°Ô º¸°íÇÕ´Ï´Ù. ÆÄÀÏ ½Ã½ºÅÛ ¸®µð·ºÅÍ´Â ÀÌ °áÇÔÀ» ´Ù½Ã ¿ø°Ý Ŭ¶óÀ̾ðÆ®¿¡°Ô º¸³À´Ï´Ù. ÀÌ ±â´ÉÀº ·ÎÄà ÆÄÀÏ ½Ã½ºÅÛ¿¡ Ã¥ÀÓÀ» Àü°¡ÇÏ¿© ¸¶Ä¡ Ŭ¶óÀ̾ðÆ®°¡ ·ÎÄÃÀÎ °Íó·³ ·ÎÄà ÆÄÀÏ ½Ã½ºÅÛÀÌ ¾×¼¼½º È®ÀÎÀ» Çϵµ·Ï Çϱ⠶§¹®¿¡ ÆÄÀÏ ½Ã½ºÅÛ ¸®µð·ºÅÍ¿¡°Ô´Â ¸Å¿ì Æí¸®ÇÑ ±â´ÉÀÔ´Ï´Ù. ÀÌ ±â´ÉÀº ÆÄÀÏ ½Ã½ºÅÛ ¸®µð·ºÅÍ¿Í °°Àº °£´ÜÇÑ °ÔÀÌÆ®¿þÀÌ¿¡ À¯¿ëÇÕ´Ï´Ù. ÇÏÁö¸¸, °¡ÀåÀº Á» ´õ º¹ÀâÇÑ ÀÀ¿ë ÇÁ·Î±×·¥¿¡¼ ´Ù¸£°Ô »ç¿ëµÇ´Â °æ¿ì°¡ ÀÖ½À´Ï´Ù. À¥ ÀÀ¿ë ÇÁ·Î±×·¥À» ¿¹·Î µé¾î º¾½Ã´Ù. Web.config ÆÄÀÏ¿¡ ¾Æ·¡¿Í °°ÀÌ ÁöÁ¤ÇÏ´Â °ü¸®µÇÁö ¾Ê´Â ±âº» ASP ÀÀ¿ë ÇÁ·Î±×·¥, ISAPI È®Àå¸í ¶Ç´Â ADP.NET ÀÀ¿ë ÇÁ·Î±×·¥À» ÀÛ¼ºÇÏ´Â °æ¿ì,
ÇÁ·Î¼¼½º ÅäÅ«°ú ½º·¹µå ÅäÅ« µÎ °³ÀÇ ´Ù¸¥ º¸¾È ÄÁÅؽºÆ®°¡ Àִ ȯ°æ¿¡¼ ½ÇÇàÇÏ°Ô µË´Ï´Ù. ÀϹÝÀûÀ¸·Î ½º·¹µå ÅäÅ«Àº ¾×¼¼½º È®ÀÎÀ» À§ÇØ »ç¿ëµË´Ï´Ù(±×¸² 3 ÂüÁ¶). À¥ ¼¹ö ÇÁ·Î¼¼½º¿¡¼ ½ÇÇàµÇ´Â ISAPI ÀÀ¿ë ÇÁ·Î±×·¥À» ÀÛ¼ºÇÑ´Ù°í °¡Á¤ÇØ º¾½Ã´Ù. ½º·¹µå ÅäÅ«Àº IUSR_MACHINE°ú °°ÀÌ µÇ¸ç ´ëºÎºÐÀÇ ¿äûÀº ÀÎÁõµÇÁö ¾Ê½À´Ï´Ù. ±×·¯³ª ÇÁ·Î¼¼½º ÅäÅ«Àº SYSTEMÀÔ´Ï´Ù! ¹öÆÛ ¿À¹öÇ÷ΠȰ¿ëÀ» ÅëÇØ Äڵ尡 °ø°Ý´çÇß´Ù°í ÇսôÙ. °ø°ÝÀÚ´Â IUSR_MACHINEÀ¸·Î ½ÇÇàÇÏ´Â °ÍÀ¸·Î´Â ¸¸Á·ÇÏÁö ¾ÊÀ» °ÍÀÔ´Ï´Ù. °ø°ÝÀÚÀÇ ±ÇÇÑ ¼öÁØÀ» ³ôÀ̱â À§ÇØ °ø°Ý Äڵ尡 RevertToSelf¸¦ È£ÃâÇÏ¿© °¡Àå ÅäÅ«À» Á¦°ÅÇÒ °¡´É¼ºÀÌ ¸¹½À´Ï´Ù. ÀÌ °æ¿ì, °ø°ÝÀÚÀÇ Àǵµ´ë·Î µÉ ¼ö ÀÖ½À´Ï´Ù. ¶ÇÇÑ °ø°ÝÀÚ´Â CreateProcess¸¦ È£ÃâÇÒ ¼öµµ ÀÖ½À´Ï´Ù. ÀÌ·¸°Ô µÇ¸é »õ ÇÁ·Î¼¼½º¿¡ ´ëÇÑ ÅäÅ«ÀÌ °¡Àå ÅäÅ«¿¡¼°¡ ¾Æ´Ñ ÇÁ·Î¼¼½º ÅäÅ«¿¡¼ º¹»çµÇ¾î »õ ÇÁ·Î¼¼½º°¡ ½Ã½ºÅÛÀ¸·Î ½ÇÇàµË´Ï´Ù.
±×¸² 3 È®ÀÎ
ÀÌ ¹®Á¦¸¦ ÇØ°áÇÒ ¼ö ÀÖ´Â ¹æ¹ýÀº ¹«¾ùÀϱî¿ä ¿ì¼± ¹öÆÛ ¿À¹öÇ÷ΰ¡ ¹ß»ýÇÏÁö ¾Êµµ·Ï ÇØ¾ß Çϸç ÃÖ¼ÒÇÑÀÇ ±ÇÇÑ ¿øÄ¢À» ¸í½ÉÇØ¾ß ÇÕ´Ï´Ù. SYSTEM¿¡ Á¦°øÇß´ø °·ÂÇÑ ±ÇÇÑÀÌ Äڵ忡´Â ÇÊ¿äÇÏÁö ¾ÊÀº °æ¿ì, À¥ ÀÀ¿ë ÇÁ·Î±×·¥ÀÌ À¥ ¼¹ö ÇÁ·Î¼¼½º ³»¿¡¼ ½ÇÇàµÇµµ·Ï ±¸¼ºÇÏÁö ¸¶½Ê½Ã¿À. À¥ ÀÀ¿ë ÇÁ·Î±×·¥ÀÌ Áß°£ ¶Ç´Â ³ôÀº °Ý¸® ¼öÁØÀ¸·Î ½ÇÇàµÇµµ·Ï °£´ÜÈ÷ ±¸¼ºÇÏ´Â °æ¿ì, ÇÁ·Î¼¼½º ÅäÅ«Àº IWAM_MACHINEÀÌ µË´Ï´Ù. ÀÌ·¸°Ô ÇÏ¸é »ç½Ç»ó »ç¿ëÀÚ´Â ±ÇÇÑÀ» ÀüÇô °¡Áú ¼ö ¾ø°Ô µÇ¸ç ÀÌ·¯ÇÑ Á¾·ùÀÇ °ø°ÝÀº °ÅÀÇ ¿µÇâÀ» ¹ÌÄ¡Áö ¾Ê½À´Ï´Ù. Windows Server 2003ÀÇ ±¸¼º ¿ä¼Ò°¡ µÉ IIS 6.0¿¡¼ »ç¿ëÀÚ ÀÛ¼º ÄÚµå´Â ±âº»ÀûÀ¸·Î SYSTEMÀ¸·Î ½ÇÇàµÇÁö ¾Ê½À´Ï´Ù. ÀÌ ÀÛ¾÷Àº °³¹ßÀÚ°¡ ¹üÇÏ´Â ½Ç¼ö¸¦ ¹ÙÅÁÀ¸·Î ÇÑ °ÍÀ̸ç, À¥ ¼¹ö°¡ Äڵ忡 ÁÖ¾îÁø ±ÇÇÑÀ» ÁÙÀ̱â À§ÇØ Á¦°øÇÒ ¼ö ÀÖ´Â Áö¿øÀº Äڵ忡 º¸¾È ¹ö±×°¡ ÀÖÀ» ¶§ À¯¿ëÇÕ´Ï´Ù.
COM ÇÁ·Î±×·¡¸Ó°¡ ½ÇÇàÇÒ ¼ö ÀÖ´Â ¶Ç ´Ù¸¥ ÀÛ¾÷ÀÌ ÀÖ½À´Ï´Ù. COMÀº ½º·¹µå¿¡ ³ª»Û ¿µÇâÀ» ÁÖ´Â °æÇâÀÌ ÀÖ½À´Ï´Ù. ½º·¹µù ¸ðµ¨ÀÌ È£Ãâ ½º·¹µå¿Í ÀÏÄ¡ÇÏÁö ¾Ê´Â in-process COM ¼¹ö¸¦ È£ÃâÇÏ´Â °æ¿ì, COMÀÌ ´Ù¸¥ ½º·¹µå¿¡ ´ëÇÑ È£ÃâÀ» ½ÇÇàÇÕ´Ï´Ù. COMÀº È£ÃâÀÚ ½º·¹µåÀÇ °¡Àå ÅäÅ«À» ÀüÆÄÇÏÁö ¾Ê±â ¶§¹®¿¡ ÇØ´ç È£ÃâÀÌ È£Ãâ ½º·¹µå°¡ ¾Æ´Ñ ÇÁ·Î¼¼½ºÀÇ º¸¾È ÄÁÅؽºÆ®·Î ½ÇÇàµË´Ï´Ù. °¡Àå ±â´ÉÀ¸·Î ÀÎÇØ °ï¶õÇÑ °æ¿ì°¡ ¶Ç ÀÖ½À´Ï´Ù. ¸í¸íµÈ ÆÄÀÌÇÁ, DCOM ¶Ç´Â RPC¸¦ ÅëÇØ ¿äûÀ» Çã¿ëÇÏ´Â ¼¹ö°¡ ÀÖ´Ù°í ÇսôÙ. Ŭ¶óÀ̾ðÆ®¸¦ ÀÎÁõÇÏ°í °¡ÀåÇÏ¸ç °¡ÀåÇÏ´Â µ¿¾È Ŭ¶óÀ̾ðÆ® ´ë½Å Ä¿³Î °³Ã¼¸¦ ¿±´Ï´Ù. Ŭ¶óÀ̾ðÆ®°¡ ¿¬°áÀ» ²÷À» ¶§ ÀÌ·¯ÇÑ °³Ã¼(¿¹: ÆÄÀÏ) Áß Çϳª¸¦ ´Ý´Â °ÍÀ» Àؾú´Ù°í °¡Á¤ÇսôÙ. ´ÙÀ½ Ŭ¶óÀ̾ðÆ®°¡ ¿¬°áµÇ¸é, ÇØ´ç Ŭ¶óÀ̾ðÆ®¸¦ ÀÎÁõÇÏ°í °¡ÀåÇÕ´Ï´Ù. ±×·¯¸é ¾î¶»°Ô µÉ±î¿ä ÀÌÀü Ŭ¶óÀ̾ðÆ®¿¡¼ "´©¼³µÈ" ÆÄÀÏÀ» ¿©ÀüÈ÷ ¾×¼¼½ºÇÒ ¼ö ÀÖÀ¸¸ç, »õ Ŭ¶óÀ̾ðÆ®°¡ ÇØ´ç ÆÄÀÏ¿¡ ¾×¼¼½º°¡ Çã¿ëµÇÁö ¾ÊÀº °æ¿ì¿¡µµ ¸¶Âù°¡ÁöÀÔ´Ï´Ù. ¼º´É»óÀÇ ÀÌÀ¯·Î °³Ã¼¸¦ óÀ½ ¿ ¶§ °³Ã¼ÀÇ ¾×¼¼½º È®ÀÎÀº Ä¿³Î¸¸ ½ÇÇàÇÕ´Ï´Ù. ³ªÁß¿¡ ´Ù¸¥ »ç¶÷À» °¡ÀåÇϱ⠶§¹®¿¡ º¸¾È ÄÁÅؽºÆ®°¡ º¯°æµÇ´õ¶óµµ ÀÌ ÆÄÀÏ¿¡´Â ¾×¼¼½ºÇÒ ¼ö ÀÖ½À´Ï´Ù.
Áö±Ý±îÁö ¼³¸íÇÑ ³»¿ëÀº °¡Àå ±â´ÉÀÌ ¼¹ö °³¹ßÀڵ鿡°Ô´Â Æí¸®ÇÑ ±â´ÉÀ̸ç Ãë¾àÁ¡ÀÌ ÀÖ´Ù´Â °ÍÀÔ´Ï´Ù. °¡Àå ÅäÅ«À¸·Î ½ÇÇàÇÏ´Â °æ¿ì Äڵ忡 Ưº°È÷ ½Å°æ½á¾ß ÇÕ´Ï´Ù.
10. °ü¸®ÀÚ°¡ ¾Æ´Ñ »ç¿ëÀÚ°¡ ½ÇÁ¦·Î »ç¿ëÇÒ ¼ö ÀÖ´Â ÀÀ¿ë ÇÁ·Î±×·¥ ÀÛ¼º
ÀÌ ÀÀ¿ë ÇÁ·Î±×·¥ ÀÛ¼ºÀº ÃÖ¼ÒÇÑÀÇ ±ÇÇÑ ¿øÄ¢À» »ç¿ëÇÑ ½ÇÁ¦ °á°úÀÔ´Ï´Ù. ÇÁ·Î±×·¡¸ÓµéÀÌ Windows¿¡¼ Á¦´ë·Î ÀÛµ¿ÇÏÁö ¾Ê´Â Äڵ带 °è¼Ó ÀÛ¼ºÇÑ´Ù¸é °ü¸®ÀÚ°¡ ¾Æ´Ñ »ç¿ëÀÚµéÀº "ºÒ¾ÈÀüÇÑ" ½Ã½ºÅÛÀÌ Ç¥ÀûÀÌ µÇ¾ú´Ù´Â »ç½ÇÀ» ¾Ë¾ÆÂ÷¸®Áö ¸øÇÒ °ÍÀÔ´Ï´Ù. Windows¿¡´Â ¸Å¿ì °ß°íÇÑ º¸¾È ±â´É ÁýÇÕÀÌ ÀÖÁö¸¸ »ç¿ëÀÚµéÀÌ °ü¸®ÀÚÀÇ ÀÛ¾÷À» ÇØ¾ß ÇÑ´Ù¸é »ç¿ëÀÚ¿¡°Ô ÀÌ·¯ÇÑ ±â´ÉÀº ¼Ò¿ëÀÌ ¾ø½À´Ï´Ù.
ÀÌ ¹®Á¦¸¦ ¾î¶»°Ô ÇØ°áÇÒ ¼ö ÀÖÀ»±î¿ä ¿ì¼±, ½º½º·Î ÇØ°áÇØ¾ß ÇÕ´Ï´Ù. »ç¿ëÀÚ ÀÚ½ÅÀÌ °ü¸®ÀÚ·Î ½ÇÇàÇÏÁö ¸»¾Æ¾ß ÇÕ´Ï´Ù. º¸¾È ¼³°è°¡ µÇÁö ¾ÊÀº ÇÁ·Î±×·¥À» »ç¿ëÇÏ´Â °ÍÀÌ ¸Å¿ì ¾î·Á¿î ÀÏÀ̶ó´Â °ÍÀ» °ð ¾Ë°Ô µÉ °ÍÀÔ´Ï´Ù. ¾ó¸¶ Àü¿¡, Àú(Keith)´Â µ¥½ºÅ©Åé°ú ÀåÄ¡ °£¿¡ µ¥ÀÌÅ͸¦ µ¿±âÈÇϵµ·Ï µðÀÚÀÎµÈ ÇÚµåÇïµå ÀåÄ¡ÀÇ Á¦Á¶¾÷ü°¡ Á¦°øÇÏ´Â ¸î¸î ¼ÒÇÁÆ®¿þ¾î¸¦ ¼³Ä¡Çß½À´Ï´Ù. Ç×»ó ±×·¨µíÀÌ ÀÏ¹Ý »ç¿ëÀÚ °èÁ¤À¸·Î ·Î±×¿ÀÇÁÇÏ°í ±âº»À¸·Î Á¦°øµÇ´Â °ü¸®ÀÚ °èÁ¤À¸·Î ´Ù½Ã ·Î±×ÀÎÇÏ¿© ¼ÒÇÁÆ®¿þ¾î¸¦ ¼³Ä¡ÇÑ ´ÙÀ½, Á¦ ÀÏ¹Ý °èÁ¤À¸·Î ´Ù½Ã ·Î±×ÀÎÇÏ¿© ¼ÒÇÁÆ®¿þ¾î¸¦ ½ÇÇàÇß½À´Ï´Ù. ÇÊ¿äÇÑ ÀϺΠµ¥ÀÌÅÍ ÆÄÀÏ¿¡ ¾×¼¼½ºÇÒ ¼ö ¾ø´Ù´Â ³»¿ëÀÇ ´ëÈ »óÀÚ°¡ ³ªÅ¸³ ´ÙÀ½ ¾×¼¼½º À§¹Ý 󸮰¡ ÁøÇàµÇ¾ú½À´Ï´Ù. ³î¶ó¿î °ÍÀº ÀÌ ¼ÒÇÁÆ®¿þ¾î°¡ ÇÚµåÇïµå ÀåÄ¡ÀÇ ÁÖ¿ä °ø±Þ¾÷üÀÇ °ÍÀ̾ú½À´Ï´Ù. ¿©±â¿¡ ´ëÇؼ´Â º¯¸íÀÇ ¿©Áö°¡ ¾ø½À´Ï´Ù.
http://sysinternals.com (US) ¿¡¼ FILEMONÀ» ½ÇÇàÇØ º» °á°ú, ÇØ´ç ÀÀ¿ë ÇÁ·Î±×·¥ÀÌ ½ÇÇà ÆÄÀÏ°ú µ¿ÀÏÇÑ µð·ºÅ͸®¿¡ ¼³Ä¡µÈ ¾²±â ¾×¼¼½º¿¡ ´ëÇÑ µ¥ÀÌÅÍ ÆÄÀÏÀ» ¿·Á°í Çß´ø °ÍÀ» ¾Ë¾Ò½À´Ï´Ù. ÀÀ¿ë ÇÁ·Î±×·¥ÀÌ Program Files µð·ºÅ͸®¿¡ ¼³Ä¡µÇ¸é ÇØ´ç µð·ºÅ͸®¿¡ µ¥ÀÌÅ͸¦ ÀÛ¼ºÇÏÁö ¸»¾Æ¾ß ÇÕ´Ï´Ù. Program Files¿¡ Á¦ÇÑµÈ ¾×¼¼½º ÄÁÆ®·Ñ Á¤Ã¥ÀÌ Àֱ⠶§¹®ÀÔ´Ï´Ù. »ç¿ëÀÚ°¡ ±×·¯ÇÑ µð·ºÅ͸®¿¡ ÀÛ¼ºÇÏ´Â °ÍÀº ¹Ù¶÷Á÷ÇÏÁö ¾Ê½À´Ï´Ù. ¿Ö³ÄÇϸé ÀÌ·¸°Ô Çϸé Æ®·ÎÀÌ ¸ñ¸¶¸¦ ´Ù¸¥ »ç¿ëÀÚ°¡ ½ÇÇàÇÏ°Ô µÇ±â ¶§¹®ÀÔ´Ï´Ù. »ç½Ç ÀÌ ±ÔÁ¤Àº Windows XP¿¡ ´ëÇÑ ±âº» ·Î°í ¿ä±¸ »çÇ×ÀÇ ÀϺÎÀÔ´Ï´Ù(http://www.microsoft.com/winlogo (US) ÂüÁ¶).
¸¹Àº ÇÁ·Î±×·¡¸ÓµéÀÌ Äڵ带 °³¹ßÇÒ ¶§ °ü¸®ÀÚ·Î ½ÇÇàÇÏ´Â ÀÌÀ¯°¡ ÀÖ½À´Ï´Ù. ÇÏÁö¸¸ ÀÌ ¹®Á¦¸¦ °è¼ÓÇؼ ¹«½ÃÇÑ´Ù¸é »óȲÀº ´õ¿í ³ªºüÁú °ÍÀÔ´Ï´Ù. ÅؽºÆ® ÆÄÀÏÀ» ÆíÁýÇÏ´Â µ¥¿¡´Â °ü¸®ÀÚ ±ÇÇÑÀÌ ÇÊ¿äÇÏÁö ¾Ê½À´Ï´Ù. ¶ÇÇÑ ½ÃÀÛÇÑ ÇÁ·Î±×·¥À» ÄÄÆÄÀÏ ¶Ç´Â µð¹ö±×ÇÏ´Â µ¥¿¡´Â °ü¸®ÀÚ ±ÇÇÑÀÌ ÇÊ¿äÇÏÁö ¾Ê½À´Ï´Ù. °ü¸®ÀÚ ±ÇÇÑÀÌ ÇÊ¿äÇϸé, ¿î¿µ üÁ¦ÀÇ RunAs ±â´ÉÀ» »ç¿ëÇÏ¿© Çâ»óµÈ ±ÇÇÑÀ¸·Î °³º° ÇÁ·Î±×·¥À» ½ÇÇàÇϽʽÿÀ. °³¹ßÀÚ°¡ »ç¿ëÇÒ µµ±¸¸¦ ÀÛ¼ºÇÏ´Â °æ¿ì Ä¿¹Â´ÏƼ¿¡ ´ëÇÑ Ã¥ÀÓµµ ÀÖ½À´Ï´Ù. ÀÌ·¸°Ô °ü¸®ÀÚ¸¸ ½ÇÇàÇÒ ¼ö ÀÖ´Â Äڵ带 °è¼ÓÇؼ ÀÛ¼ºÇÏ´Â ¾Ç¼øȯÀ» Áß´ÜÇØ¾ß Çϸç, ±×·¸°Ô ÇÏ·Á¸é ÀÏ¹Ý »ç¿ëÀÚµéÀÇ ¼öÁØ¿¡¼ Äڵ带 ÀÛ¼ºÇÏ´Â °ÍÀÔ´Ï´Ù.
°ü¸®ÀÚ°¡ ¾Æ´Ñ »ç¿ëÀÚ·Î ½±°Ô ½ÇÇàÇÒ ¼ö ÀÖ´Â ¹æ¹ý¿¡ ´ëÇؼ´Â KeithÀÇ À¥ »çÀÌÆ®ÀÎ http://www.develop.com/kbrown (US) À» ÂüÁ¶ÇϽʽÿÀ. ¶ÇÇÑ ºñ°ü¸® ȯ°æ¿¡¼µµ Á¦´ë·Î ½ÇÇàµÇ´Â ÀÀ¿ë ÇÁ·Î±×·¥À» ÀÛ¼ºÇÏ´Â ¹æ¹ý¿¡ ´ëÇØ ¼³¸íÇÑ MichaelÀÇ Àú¼ º¸¾È ÄÚµå ÀÛ¼º(Microsoft Press, 2001³â)ÀÇ »çº»À» »ìÆ캸½Ê½Ã¿À.
Ãâó : [±âŸ] ºí·Î±× ÁýÇÊ - °£ÁöÄÚµå ¿ø¹®Ãâó : http://www.microsoft.com/korea/technet
|
Hit : 13057 Date : 2009/09/01 06:49
|