³¯Â¥: 1996-05-15 | ±Û¾´ÀÌ: µµ¾Æ | 10437 ¹ø | ÇÁ¸°Æ® | ¸ÞÀϷκ¸³»±â

Á¦ 15°­ - Á¢±ÙÁ¦ÇÑ(Access Control)


ÀÌÁ¦ ƯÁ¤ µ¥ÀÌÅͺ£À̽º¿¡´ëÇÑ Á¢±ÙÀ» ƯÁ¤ »ç¿ëÀÚ·Î Á¦ÇÑÇÏÀÚ. NCSA °è¿­ÀÇ ¼­¹ö´Â ¿Â¶óÀÎ µ¥ÀÌÅͺ£À̽º¿Í ¿¬µ¿½ÃÅ°´Âµ¥ ½±°Ô Àû¿ëÇÒ ¼ö ÀÖ´Â ³»ÀåµÈ »ç¿ëÀÚ ÀÎÁõ ±â´ÉÀ» °¡Áö°í ÀÖ´Ù. ¹æ¾î¶õ ?

¼­¹ö ÀÎÁõ ÀÌ·ÐÀº ÆÄÀÏ ½Ã½ºÅÛ¿¡ ´ëÇÑ Á¢±ÙÀ» ó¸®Çϱâ À§ÇØ °í¾ÈµÇ¾úÀ¸¸ç, ¼­¹ö ÀÎÁõÀ¸·Î ƯÁ¤ »ç¶÷(¶Ç´Â È£½ºÆ®)ÀÇ Á¢±ÙÀ» Çã°¡Çϰųª ƯÁ¤ »ç¶÷(¶Ç´Â È£½ºÆ®)ÀÇ Á¢±Ù °ÅÀýÇÒ ¼ö ÀÖ´Ù.

¾ÕÀý¿¡¼­ ÀÛ¼ºÇÑ CGI´Â °Ë»ö CGI¿Í »ðÀÔ, ¼öÁ¤ CGI·Î ±¸¼ºµÇ¾î ÀÖ´Ù. °Ë»ö CGI´Â ´©±¸³ª Á¢±ÙÇؼ­ »ç¿ëÇصµ ¹«¹æÇÏÁö¸¸ »ðÀÔ, ¼öÁ¤ CGI´Â ÀÎÁõµÈ »ç¿ëÀÚ¸¸ Á¢±ÙÇÒ ¼ö ÀÖ¾î¾ß ÇÑ´Ù. °Ë»ö¿ë CGI¿Í »ðÀÔ, ¼öÁ¤¿ë CGI¸¦ ºÐ¸®½ÃŲ ÀÌÀ¯´Â Â÷Â÷ ¾Ë°ÔµÇ°ÚÁö¸¸ ±Ùº»ÀûÀ¸·Î ÇöÀç »ç¿ëµÇ°í ÀÖ´Â ¼­¹ö ÀÎÁõ ÀÌ·ÐÀº ÆÄÀÏ¿¡´ëÇÑ Á¢±ÙÀ» Á¦¾îÇÒ ¼ö ¾ø±â¶§¹®ÀÌ´Ù. µû¶ó¼­ ÇϳªÀÇ ÆÄÀÏ¿¡ ¸ðµç ±â´ÉÀ» »ðÀÔÇÏ´Â °æ¿ì ºÎ°¡ÀûÀÎ ÀýÂ÷°¡ ÇÊ¿äÇÏ´Ù. °³ÀÎÀÎÁõ Á¢±Ù Á¦¾î ÆÄÀÏ(Access Control File)

º¸È£µÇ¾î¾ß ÇÏ´Â ½ºÅ©¸³Æ®°¡ Á¸ÀçÇÏ´Â µð·ºÅ丮¿¡ .htaccess¶ó°í ºÒ¸®´Â ÆÄÀÏÀ» »ý¼ºÇÏ°í ±× ÆÄÀÏ¿¡ ´ÙÀ½°ú °°Àº ³»¿ëÀ» µÐ´Ù.

ÁÖÀÇ1: Àü¿ª-ACF ÆÄÀÏÀÇ <Directory>¿¡ ¾Æ·¡ÀÇ ³»¿ëÀ» µÎ¾îµµ µ¿ÀÏÇÑ È¿°ú¸¦ ¾òÀ» ¼ö ÀÖÁö¸¸ ÀÌ°æ¿ì ¼­¹ö¸¦ Àç±âµ¿ÇØ¾ß ÇÏ´Â ´ÜÁ¡ÀÌ ÀÖ´Ù.

ÁÖÀÇ2: ÀÌ ±â´ÉÀ» »ç¿ëÇϱâÀ§Çؼ­´Â Àü¿ª-ACF ÆÄÀÏÀÇ Document Root µð·ºÅ丮ÀÇ AllowOverride¿É¼ÇÀÌ All·Î µÇ¾î ÀÖ¾î¾ß ÇÑ´Ù.

AuthUserFile /home/artech/.htpasswd 
AuthGroupFile /dev/null 
AuthName Test 
AuthType Basic 

<Limit GET POST> 
require user artech 
</Limit>

AuthUserFile¿¡´ëÇÑ Àû´çÇÑ À̸§°ú µð·ºÅ丮¸¦ ¼±ÅÃÇÑ´Ù. AuthUserFileÀº °£´ÜÇÏ°Ô »ý¼ºÇÒ ¼ö ÀÖ´Ù. ±×·¯³ª °¡±ÞÀû ÀÌ ÆÄÀÏÀ» .htaccess ÆÄÀÏ°ú ÇÔ²² µÎÁö ¾Ê´Â °ÍÀÌ ÁÁ´Ù. ¿Ö³ÄÇϸé ÀÌ ÆÄÀÏÀº ÇØ´ç µð·ºÅ丮¸¦ Á¢±ÙÀ» Á¦¾îÇϴµ¥ »ç¿ëµÇ´Â »ç¿ëÀÚ À̸§°ú ¾ÏÈ£¸¦ ÀúÀåÇÏ°í Àֱ⠶§¹®ÀÌ´Ù.

AuthGroupFileÀº ±×·ìÆÄÀÏÀ» ÁöÁ¤ÇÔÀ¸·Î¼­ ƯÁ¤ ±×·ìÀÇ Á¢±ÙÀ» ¼³Á¤Çϴµ¥ »ç¿ëµÉ ¼öµµ ÀÖ´Ù. ÀÌ °ÍÀº ¾Æ·¡¿¡ ÀÚ¼¼È÷ ³ª¿ÍÀÖ´Ù.

À§¿¡¼­ AuthNameÀº ¾ÏÈ£ÀÔ·ÂÀ» ¿ä±¸ÇÏ´Â ´ëÈ­»óÀÚ¿¡ ³ªÅ¸³ª°ÔµÉ ÆûÀÇ À̸§ÀÌ´Ù. ¾ÏÈ£ÆÄÀÏ

NCSA °è¿­ÀÇ ¼­¹ö´Â htpasswd¶ó°í ºÒ¸®´Â ÇÁ·Î±×·¥À» Æ÷ÇÔÇÏ°í ÀÖ´Ù. ¾ÏÈ£ÆÄÀÏÀ» »ý¼ºÇÏ°í, ÀÌ ÆÄÀÏ¿¡ »ç¿ëÀÚ¸¦ Ãß°¡Çϱâ À§Çؼ­´Â ¾ÏÈ£ ÆÄÀÏÀÇ °æ·Î¸¦ ÀÚ½ÅÀÇ ½Ã½ºÅÛ¿¡ ¸ÂÃß¾î ´ÙÀ½°ú °°ÀÌ ½ÇÇàÇÑ´Ù.

htpasswd -c /home/artech/.htpasswd artech

ÁÖÀÇ: htpasswd ÆÄÀÏÀº ÀϹÝÀûÀ¸·Î À¥¼­¹ö°¡ ¼³Ä¡µÈ µð·ºÅ丮ÀÇ support¶ó´Â µð·ºÅ丮¿¡ Á¸ÀçÇÑ´Ù. support¶ó´Â µð·ºÅ丮°¡ Á¸ÀçÇÏÁö ¾Ê°Í³ª ÀÌ ÆÄÀÏÀ» CGI¸¦ ÀÌ¿ëÇؼ­ »ý¼ºÇÏ·Á¸é Unix¿¡¼­ Á¦°øÇÏ´Â crypt¶ó´Â ÇÔ¼ö¸¦ »ç¿ëÇÏ¸é µÈ´Ù.

À§¿Í °°ÀÌ ¼öÇàÇϸé, ¾ÏÈ£ ÆÄÀÏÀÌ »ý¼ºµÇ¸ç, artech¶ó´Â »ç¿ëÀÚ°¡ Ãß°¡µÈ´Ù. ÀÌ °æ¿ì artechÀÇ ¾ÏÈ£¸¦ µÎ ¹ø ÀÔ·ÂÇØ¾ß ÇÑ´Ù.

ÀÌ ÆÄÀÏ ³»ÀÇ »ç¿ëÀÚ¿Í ·ÎÄà ½Ã½ºÅÛÀÇ »ç¿ëÀÚ »çÀÌ¿¡´Â ¾î¶°ÇÑ °ü°èµµ ¾ø´Ù. ·ÎÄà ½Ã½ºÅÛ¿¡ °èÁ¤À» °®´Â »ç¿ëÀÚ´Â ·ÎÄà ½Ã½ºÅÛÀÇ ¾ÏÈ£ÆÄÀÏ°ú µ¿ÀÏÇÑ(¶Ç´Â ´Ù¸¥) »ç¿ëÀÚ ¸í, »ç¿ëÀÚ ¾ÏÈ£¸¦ »ç¿ëÇÒ ¼ö ÀÖ´Ù. ÀÌ·¯ÇÑ ¹æ¹ýÀº ´ÜÁö ¿øÇÏ´Â µð·ºÅ丮 ³»¿¡ ÆÄÀÏ¿¡´ëÇÑ Á¢±Ù¸¸ Á¦¾îÇÑ´Ù.

º¸È£µÈ µð·ºÅ丮³»ÀÇ ÆÄÀÏ¿¡ Á¢±ÙÇÏ·Á´Â »ç¿ëÀÚ¿¡°Ô »ç¿ëÀÚÀÇ ºê·Î¿ìÀú´Â ¾ÏÈ£ÀÔ·ÂÀ» ¿ä±¸Çϸç ÀÎÁõÀ» À§ÇØ ÀÌ °ÍÀ» ¼­¹ö·Î °Ç³×ÁØ´Ù. ¸¸¾à »ç¿ëÀÚ À̸§°ú ¾ÏÈ£°¡ ¾ÏÈ£ÆÄÀÏ¿¡ Á¸ÀçÇÏ´Â °æ¿ì, Á¢±ÙÀÌ Çã¿ëµÈ´Ù. ±×·ìÀÎÁõ

±×·ì¿¡´ëÇØ »ç¿ëÀÚ ÀÎÁõÀ» ÇϱâÀ§Çؼ­´Â À§¿¡¼­Ã³·³ htpasswd¸¦ »ç¿ëÇؼ­ ¾ÏÈ£ÆÄÀÏ¿¡ »ç¿ëÀÚ¸¦ Ãß°¡ÇÑ´Ù. ¾ÏÈ£ÆÄÀÏ ÀÖ´Â µð·ºÅ丮(¹Ýµå½Ã ÇÊ¿äÇÑ °ÍÀº ¾Æ´ÏÁö¸¸ ³ª»Û »ý°¢Àº ¾Æ´Ï´Ù)¿¡ Á¢±ÙÀ» Çã¿ëÇÒ »ç¿ëÀÚ ¸íÀ» Æ÷ÇÔÇÏ´Â ±×·ìÆÄÀÏÀ» ¸¸µç´Ù. ÀÏ°ü¼ºÀ» À§ÇØ ÀÌ ÆÄÀÏÀ» .htgroups¶ó°í À̸§ ºÙÀÌ°í ´ÙÀ½°ú °°ÀÌ ±×·ìÀ̸§°ú »ç¿ëÀÚ¸íÀ» Æ÷ÇÔÇÑ ±×·ìÀ» ÁöÁ¤ÇÑ´Ù.

add-access: artech pumpkin peanuts almonds walnuts

.htaccess ÆÄÀÏÀ» ´ÙÀ½°ú °°ÀÌ º¯°æÇÑ´Ù.

AuthUserFile /home/artech/.htpasswd 
AuthGroupFile /home/artech/.htgroups 
AuthName AddForm 
AuthType Basic 

<Limit GET POST> 
require group add-access 
</Limit>

ÇÊ¿ä¿¡ µû¶ó ´õ ¸¹Àº ±×·ìÀ» Ãß°¡ÇÒ ¼ö ÀÖ´Ù. ±×·ì ÆÄÀϳ»ÀÇ »ç¿ëÀÚ¸¦ .htpasswd ÆÄÀÏ¿¡ Ãß°¡ÇÏ´Â °ÍÀ» ÀØÁö ¸»±â ¹Ù¶õ´Ù. - À̵éÀº ¾ÏÈ£¸¦ ÇÊ¿ä·Î ÇÑ´Ù. ƯÁ¤ ÆÄÀÏÀÇ Á¦¾î

¿©±â¿¡ ¸î¸î ±â¹ýÀÌ ÀÖ´Ù. ƯÁ¤ ÆÄÀÏ¿¡ ´ëÇÑ Á¢±ÙÀº Á¦ÇÑÇÒ ¼ö ¾ø´Ù. ´ÜÁö ƯÁ¤ µð·ºÅ丮¸¸ Á¦ÇÑ ÇÒ ¼ö ÀÖ´Ù. ¸¸¾à ƯÁ¤ ÆÄÀÏÀÇ Á¢±ÙÀ» Á¦ÇÑÇÏ·Á¸é À§¿¡¼­¿Í ¸¶Âù°¡Áö·Î º¸È£µÈ µð·ºÅ丮¸¦ ¼³Á¤ÇÏ°í, Á¢±ÙÀ» Á¦ÇÑÇÏ·Á´Â ÆÄÀÏÀ» º¸È£µÈ µð·ºÅ丮¿¡ µÎ¸é µÈ´Ù.

¸¸¾à ¼­¹ö¸¦ Unix¿¡¼­ ±âµ¿ÇÏ°í ÀÖ´Ù¸é, ÈξÀ ȯ»óÀûÀÌ´Ù. ÀÌ ¿¹¿¡¼­´Â µ¥ÀÌÅÍ º£À̽º¸¦ °¡Áö°í ÀÖÀ¸¸ç »ç¿ëÀÚ¿¡°Ô´Â ´ÜÁö µ¥ÀÌÅͺ£À̽ºÀÇ °Ë»ö¸¸ °¡´ÉÇÏ°Ô ÇÏ·Á°í ÇÑ´Ù. dbupdate.cgi¶ó°í ºÎ¸£´Â ÇϳªÀÇ ½ºÅ©¸³Æ®´Â µ¥ÀÌÅÍ º£À̽ºÀÇ °Ë»ö, Ãß°¡, º¯°æ, »èÁ¦¿Í °°Àº µ¥ÀÌÅͺ£À̽º¿¡ ´ëÇÑ ¸ðµç µ¿ÀÛÀ» Æ÷ÇÔÇÑ´Ù. °°Àº ½ºÅ©¸³Æ®¿¡ ÇÊ¿äÇÑ ¸ðµç ±â´ÉÀ» Æ÷ÇÔÇÏ°í ÀÖÀ» ¶§ ¾î¶»°Ô ÇÑ ±â´É¸¸ Á¢±ÙÇϵµ·Ï Á¦¾îÇÒ ¼ö ÀÖÀ» ±î ? ÇÁ·Î±×·¥ÀÇ ¿©·¯ °³·Î ³ª´©´Â ´ë½Å ´ÙÀ½°ú °°ÀÌ ÇϸéµÈ´Ù.

ºó µð·ºÅ丮¸¦ ¸¸µé°í, ÀÌ µð·ºÅ丮¿¡ ´ëÇÑ º¸¾ÈÀ» ¼³Á¤ÇÑ´Ù. ÀÌ °æ¿ì¿¡ .htaccess ÆÄÀÏÀº ´ÙÀ½°ú °°¾Æ¾ß ÇÑ´Ù:

AuthUserFile /home/artech/.htpasswd 
AuthGroupFile /dev/null 
AuthName DBAccess 
AuthType Basic 

<Limit GET POST> 
require user artech 
</Limit>

ÀÌ µð·ºÅ丮¿¡ ½ºÅ©¸³Æ®¿¡ ´ëÇÑ ´ÜÃà ¸µÅ©¸¦ »ý¼ºÇÑ´Ù. ÆÄÀÏÀ» º¹»çÇÒ ¼öµµ ÀÖÁö¸¸ ¿Ö µð½ºÅ©ÀÇ °ø°£À» ³¶ºñÇϰڴ°¡? ÀÌ µð·ºÅ丮³»ÀÇ À¯ÀÏÇÑ ÆÄÀÏÀº .htaccess¿Í ´ÜÃà ¸µÅ©ÀÌ´Ù.

¸¶Áö¸·À¸·Î ¿ø·¡ÀÇ ÇÁ·Î±×·¥ÀÌ ¾Æ´Ï¶ó ´ÜÃà ¸µÅ©¸¦ È£ÃâÇÒ ÇÊ¿ä°¡ ÀÖ´Ù. ´ÜÃà ¸µÅ©¿¡ ´ëÇÑ Á¢±ÙÀº º¸È£µÇÁö¸¸ ¿ø·¡ÀÇ ÇÁ·Î±×·¥¿¡ ´ëÇÑ Á¢±ÙÀº Á¦ÇѵÇÁö ¾ÊÀ» °ÍÀÌ´Ù. ³» ¿¹Á¦ ½ºÅ©¸³Æ®´Â ´ÙÀ½°ú °°ÀÌ È£ÃâÇÑ´Ù.

<FORM ACTION="http://qaos.com/cgi-bin/dbupdate.cgi/path"> 
<INPUT TYPE="submit" VALUE="°Ë»ö">

URL·Î Á¤º¸¸¦ Àü¼ÛÇÔÀ¸·Î ¿µ¸®ÇÑ Å©·¡Ä¿´Â º¸È£µÇÁö ¾ÊÀº ½ºÅ©¸³Æ®¸¦ È£ÃâÇÔÀ¸·Î¼­ º¸È£±â´ÉÀ» Á¢±ÙÇÒ ¼ö ÀÖÀ» °ÍÀÌ´Ù.

ÀÌ·¯ÇÑ °¡´É¼ºÀ» Á¦°ÅÇϱâ À§ÇØ ½ºÅ©¸³Æ®°¡ È£ÃâµÉ ¶§ SCRIPT_NAME ȯ°æº¯¼ö¸¦ °Ë»çÇÏ¸é µÈ´Ù. ¸¸¾à, ½ºÅ©¸³Æ®°¡ º¸È£µÈ ½ºÅ©¸³Æ®¸¦ »ç¿ëÇؼ­ È£ÃâµÇ¾ú´Ù¸é, º¸È£µÈ ±â´ÉÀ» ¾µ ¼ö ÀÖÁö¸¸ ¸¸¾à ±×·¸Áö ¾Ê´Ù¸é, º¸È£µÈ ±â´ÉÀ» »ç¿ëÇÒ ¼ö ¾ø´Ù.

¿¹¸¦ µé¾î ´ÙÀ½°ú °°Àº ÆÞ Äڵ带 Á¶»çÇغ¸±â ¹Ù¶õ´Ù.

if ( $ENV{'SCRIPT_NAME'} =~ [Regexp] ) { 
	$MyScriptUrl = [secure link]; 
	$form{'TABLE'} = 'Private_Sequences'; 
	$form{'TITLE'} = 'All Records';
} else {
	$MyScriptUrl = [public link]; 
	$form{'TABLE'} = 'Public_Sequences'; 
	$form{'TITLE'} = 'Public Records'; 
}

ÀÌ°ÍÀ¸·Î º¸È£µÇÁö ¾ÊÀº ½ºÅ©¸³Æ®·Î º¸È£µÈ ±â´ÉÀ» È£ÃâÇÏ´Â Å©·¡Ä¿¸¦ ¸·À» ¼ö ÀÖ´Ù. ¸¸¾à, ½ºÅ©¸³Æ®°¡ º¸È£µÈ °æ·Î·ÎºÎÅÍ È£ÃâµÇÁö ¾Ê´Â´Ù¸é, º¸È£µÈ ±â´ÉÀ» »ç¿ëÇÒ ¼ö ¾ø´Ù.

ÁÖÀÇ: ÀÏ´Ü »ç¿ëÀÚ°¡ »ç¿ëÀÚ ¸í°ú Æнº¿öµå¸¦ ÀÔ·ÂÇϸé, ÀÚ½ÅÀÇ À¥ ºê·Î¿ìÀú¸¦ Á¾·áÇϱâ Àü±îÁö º¸È£µÈ µð·ºÅ丮ÀÇ ¸ðµç ÆÄÀÏÀ» Á¢±ÙÇÒ ¼ö ÀÖ´Ù. ¸¸¾à »ç¿ëÀÚ°¡ ºê·Î¿ìÀú¸¦ Á¾·áÇÏ°í, ´Ù½Ã ±âµ¿ÇÑ ÈÄ, º¸È£µÈ µð·ºÅ丮·Î Á¢±ÙÇÏ´Â °æ¿ì, ´Ù½Ã »ç¿ëÀÚ À̸§°ú ¾ÏÈ£¸¦ ÀÔ·ÂÇØ¾ß ÇÑ´Ù. ƯÁ¤ È£½ºÆ®·Î(ºÎÅÍ)ÀÇ Á¢±Ù Á¦ÇÑ

.htaccess ÆÄÀÏÀÇ ¶Ç ´Ù¸¥ ÀÀ¿ëÀº ´ÙÀ½°ú °°´Ù.

AuthUserFile /dev/null 
AuthGroupFile /dev/null 
AuthName ExampleAllowFromNCSA 
AuthType Basic 

<Limit GET POST> 
order deny,allow 
deny from all 
allow from .ncsa.uiuc.edu 
</Limit>

Á¢±ÙÀ» Á¦¾îÇÒ ÇÊ¿ä¿¡ µû¶ó allow¿Í deny Çʵ带 º¯°æÇÒ ¼ö ÀÖ´Ù.

°³ÀÎ »ç¿ëÀÚÀÇ Á¢±ÙÀ» °ÅÀýÇϱâ À§Çؼ­´Â .htpasswd ÆÄÀÏ¿¡¼­ »ç¿ëÀÚ À̸§À» »èÁ¦ÇÏ¸é µÈ´Ù.



´ÙÀ½±Û: Part IV - CGI Security (6885)1996-05-31
ÀÌÀü±Û: Á¦ 14°­ - µµ¼­°ü¸® CGI - ¼Ò½º º¯°æÁß (7041)1996-05-14

¼¼»ó»ç´Â À̾߱â



RSS ±¸µ¶ (À͸í | ȸ¿ø | °­Á | Æ÷·³)
(C) 1996 ~ 2017 QAOS.com All rights reserved.