ȸ¿ø°¡ÀԡžÆÀ̵ð/ºñ¹øÃ£±â
½Ç½Ã°£ TV
ȨÀ¸·Î
PHP·Î HTTP ÀÎÁõÇϱâ
13³â Àü
PHP¸¦ ÀÌ¿ëÇÑ HTTP ÀÎÁõÀº ¾ÆÆÄÄ¡ ¸ðµâ·Î ½ÇÇàÇÒ¶§¸¸ »ç¿ëÇÒ ¼ö ÀÖÀ¸¸ç, CGI ¹öÀü¿¡¼­´Â »ç¿ëÇÒ ¼ö ¾ø½À´Ï´Ù. ¾ÆÆÄÄ¡ ¸ðµâ¿¡¼­ PHP ½ºÅ©¸³Æ®°¡ header() ÇÔ¼ö¸¦ ÀÌ¿ëÇÏ¿© "ÀÎÁõ ¿ä±¸" ¸Þ¼¼Áö¸¦ Ŭ¶óÀÌ¾ðÆ® ºê¶ó¿ìÀú¿¡ Àü¼ÛÇÔÀ¸·Î½á, »ç¿ëÀÚ¸í/ÆÐ½º¿öµå ÀÔ·ÂâÀ» ¶ç¿ï ¼ö ÀÖ½À´Ï´Ù. »ç¿ëÀÚ°¡ »ç¿ëÀÚ¸í°ú ÆÐ½º¿öµå¸¦ ÀÔ·ÂÇϸé, PHP ½ºÅ©¸³Æ®ÀÇ URLÀÌ ´Ù½Ã È£ÃâÇϰí, ¿¹¾à Á¤ÀÇ º¯¼ö PHP_AUTH_USER, PHP_AUTH_PW, AUTH_TYPE¿¡ »ç¿ëÀÚ¸í, ÆÐ½º¿öµå, ÀÎÁõ Çü½ÄÀÌ µé¾î°©´Ï´Ù. ÀÌ ¿¹¾à Á¤ÀÇ º¯¼öµéÀº $_SERVER¿Í $HTTP_SERVER_VARS ¹è¿­·Î È®ÀÎÇÒ ¼ö ÀÖ½À´Ï´Ù. ÇöÀç´Â "Basic" ÀÎÁõ¸¸À» Áö¿øÇÕ´Ï´Ù. ÀÚ¼¼ÇÑ Á¤º¸´Â header() ÇÔ¼ö¸¦ Âü°íÇϽʽÿÀ.

PHP ¹öÀü ÁÖÀÇ: $_SERVER µîÀÇ ÀÚµ¿ Àü¿ª º¯¼ö´Â PHP 4.1.0ºÎÅÍ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. $HTTP_SERVER_VARS´Â PHP 3ºÎÅÍ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.

´ÙÀ½Àº ÆäÀÌÁö¿¡ ´ëÇØ Ŭ¶óÀÌ¾ðÆ® ÀÎÁõÀ» °­Á¦ÇÏ´Â ¿¹Á¦ ½ºÅ©¸³Æ®ÀÔ´Ï´Ù:

¿¹ 16-1. HTTP ÀÎÁõ ¿¹Á¦

<?php
  if (!isset($_SERVER['PHP_AUTH_USER'])) {
    header('WWW-Authenticate: Basic realm="My Realm"');
    header('HTTP/1.0 401 Unauthorized');
    echo '»ç¿ëÀÚ°¡ Ãë¼Ò ¹öưÀ» ´­·¶À» ¶§ Àü¼ÛµÇ´Â ÅØ½ºÆ®';
    exit;
  } else {
    echo "<p>¾È³çÇϼ¼¿ä, {$_SERVER['PHP_AUTH_USER']}.</p>";
    echo "<p>{$_SERVER['PHP_AUTH_PW']}¸¦ ÆÐ½º¿öµå·Î Á¢¼ÓÇß½À´Ï´Ù.</p>";
  }
?>  



ȣȯ¼º ÁÖÀÇ: HTTP Çì´õ¿­À» ÄÚµùÇÒ¶§´Â ÁÖÀǸ¦ ±â¿ïÀ̽ʽÿÀ. ¸ðµç Ŭ¶óÀÌ¾ðÆ®¿¡ ´ëÇØ ÃÖ´ëÀÇ È£È¯¼ºÀ» º¸Àå¹Þ±â À§Çؼ­´Â, Ű¿öµå "Basic"Àº ´ë¹®ÀÚ "B"·Î ¾²¿©Á®¾ßÇϰí, ·¼¸§ ¸Þ¼¼Áö´Â ÀÌÁß ÀÎ¿ë ºÎÈ£(")·Î °¨½ÎÁ®¾ßÇϸç, HTTP/1.0 401 Çì´õ¿­¿¡¼­ 401 ÄÚµå´Â Á¤È®È÷ ÇϳªÀÇ ½ºÆäÀ̽º¸¦ °¡Á®¾ßÇÕ´Ï´Ù.

À§ ¿¹Á¦¿Í °°ÀÌ ´Ü¼øÈ÷ PHP_AUTH_USER¿Í PHP_AUTH_PW¸¦ Ãâ·ÂÇÏ´Â ´ë½Å, À¯Àú³×ÀÓ°ú ÆÐ½º¿öµå¸¦ È®ÀÎÇØ¼­ ÀÎÁõÀ» ÇÒ ¼ö ÀÖ½À´Ï´Ù. µ¥ÀÌÅͺ£À̽º¿¡ ¿ä±¸¸¦ Çϰųª, dbm ÆÄÀÏ¿¡¼­ À¯Àú¸¦ ã¾Æ³¾ ¼ö ÀÖ½À´Ï´Ù.

ÀÎÅÍ³Ý ÀͽºÇ÷η¯ ºê¶ó¿ìÀúÀÇ ¹ö±×¿¡ ÁÖÀÇÇϽʽÿÀ. Çì´õÀÇ ¼ø¼­¿¡ ¸Å¿ì ±î´Ù·Ó½À´Ï´Ù. WWW-Authenticate Çì´õ¸¦ HTTP/1.0 401 Çì´õ Àü¿¡ Àü¼ÛÇÏ´Â °ÍÀÌ ÇöÀç »ç¿ë °¡´ÉÇÑ ¹æ¹ýÀÔ´Ï´Ù.

PHP 4.3.0ºÎÅÍ, ÀüÅëÀûÀÎ ¿ÜºÎ ¸ÞÄ«´ÏÁòÀ» ÅëÇØ¼­ ÀÎÁõµÈ ÆäÀÌÁöÀÇ ÆÐ½º¿öµå¸¦ ´©ÃâÇÏ´Â ½ºÅ©¸³Æ®ÀÇ ÀÛ¼ºÀ» ¹æÁöÇϱâ À§Çؼ­, °¢°¢ÀÇ ÆäÀÌÁö¿¡ ´ëÇÑ ¿ÜºÎ ÀÎÁõ°ú ¾ÈÀü ¸ðµå°¡ Ȱ¼ºÈ­µÇ¾úÀ»¶§, PHP_AUTH º¯¼ö¸¦ ¼³Á¤ÇÏÁö ¾Ê½À´Ï´Ù. ´ë½Å, ¿ÜºÎ ÀÎÁõ À¯Àú¸¦ È®ÀÎÇϱâ À§Çؼ­ REMOTE_USER¸¦ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. ±×·¯¹Ç·Î, $_SERVER['REMOTE_USER']¸¦ »ç¿ëÇϽʽÿÀ.

¼³Á¤ ÁÖÀÇ: PHP´Â ¿ÜºÎ ÀÎÁõÀ» °ËÁõÇÒ ¶§ AuthType Áö½Ã¾îÀÇ Á¸À縦 È®ÀÎÇÕ´Ï´Ù.

ÀÌ ¹æ½ÄÀº ºñÀÎÁõ URLÀ» Á¶ÀÛÇØ¼­ °°Àº ¼­¹öÀÇ ÀÎÁõ URLÀÇ ÆÐ½º¿öµå¸¦ ÈÉÄ¡´Â °ÍÀº ¹æÁöÇÒ ¼ö ¾ø´Ù´Â Á¡¿¡ ÁÖÀÇÇϽʽÿÀ.

³Ý½ºÄÉÀÌÇÁ ³×ºñ°ÔÀÌÅÍ¿Í ÀÎÅÍ³Ý ÀͽºÇ÷η¯´Â ¼­¹ö ÀÀ´ä 401À» ¹Þ¾ÒÀ» ¶§, ·ÎÄà ºê¶ó¿ìÀúâÀÇ ÀÎÁõ ij½¬¸¦ Ŭ¸®¾îÇÕ´Ï´Ù. À̰ÍÀº °­Á¦·Î À¯Àú³×ÀÓ°ú ÆÐ½º¿öµå¸¦ ÀçÀÔ·ÂÇÏ°Ô ÇÔÀ¸·Î½á, »ç¿ëÀÚ¸¦ '·Î±× ¾Æ¿ô'ÇÏ´Â È¿°ú¸¦ °¡Áý´Ï´Ù. ¸î¸î »ç¶÷µéÀº À̰ÍÀ» "½Ã°£ Á¦ÇÑ" ·Î±×ÀÎÀ̳ª, "·Î±× ¾Æ¿ô" ¹öưÀ» Á¦°øÀ» ÅëÇØ »ç¿ëÇÕ´Ï´Ù.

¿¹ 16-2. »õ À̸§/ÆÐ½º¿öµå¸¦ °­Á¦ÇÏ´Â HTTP ÀÎÁõ ¿¹Á¦

<?php
  function authenticate() {
    header('WWW-Authenticate: Basic realm="Å×½ºÆ® ÀÎÁõ ½Ã½ºÅÛ"');
    header('HTTP/1.0 401 Unauthorized');
    echo "ÀÌ ÀÚ¿ø¿¡ Á¢±ÙÇϱâ À§Çؼ­´Â À¯È¿ÇÑ ·Î±×ÀÎ ID¿Í ÆÐ½º¿öµå¸¦ ÀÔ·ÂÇØ¾ß ÇÕ´Ï´Ù.\n";
    exit;
  }

  if (!isset($_SERVER['PHP_AUTH_USER']) ||
      ($_POST['SeenBefore'] == 1 && $_POST['OldAuth'] == $_SERVER['PHP_AUTH_USER'])) {
   authenticate();
  }
  else {
   echo "<p>¾î¼­¿À½Ê½Ã¿À: {$_SERVER['PHP_AUTH_USER']}<br />";
   echo "ÀÌÀü: {$_REQUEST['OldAuth']}";
   echo "<form action='{$_SERVER['PHP_SELF']}' METHOD='post'>\n";
   echo "<input type='hidden' name='SeenBefore' value='1' />\n";
   echo "<input type='hidden' name='OldAuth' value='{$_SERVER['PHP_AUTH_USER']}' />\n";
   echo "<input type='submit' value='ÀçÀÎÁõ' />\n";
   echo "</form></p>\n";
  }
?>  



ÀÌ ÇൿÀº HTTP Basic ÀÎÁõ Ç¥ÁØ¿¡ ÇÊ¿äÇÏÁö ¾Ê±â ¶§¹®¿¡, À̰Ϳ¡ ÀÇÁ¸Çؼ­´Â ¾ÈµË´Ï´Ù. Lynx·Î Å×½ºÆ® ÇßÀ»¶§, Lynx´Â 401 ¼­¹ö ÀÀ´ä¿¡ ÀÎÁõ Á¤º¸¸¦ Ŭ¸®¾îÇÏÁö ¾Ê±â¿¡, ÀÌÀüÀÇ ÀÎÁõ Á¤º¸¸¦ ±×´ë·Î ÀÌ¿ëÇØ¼­ ÀÚ¿øÀ» ¾òÀ¸·Á°í ½ÃµµÇÕ´Ï´Ù. ´ë½Å, »ç¿ëÀÚ°¡ '_' ۸¦ ´©¸§À¸·Î½á ÀÎÁõ Á¤º¸¸¦ »èÁ¦ÇÒ ¼ö ÀÖ½À´Ï´Ù.

PHP 4.3.3±îÁö, ¸¶ÀÌÅ©·Î¼ÒÇÁÆ®ÀÇ IIS ¼­¹ö¸¦ CGI ¹öÀüÀÇ PHP·Î »ç¿ëÇÒ ¶§, IISÀÇ Á¦¾àÀ¸·Î ÀÎÇÏ¿© HTTP ÀÎÁõÀº ÀÛµ¿ÇÏÁö ¾Ê½À´Ï´Ù. PHP 4.3.3 À̻󿡼­ ÀÛµ¿ÇÏ°Ô ÇÏ·Á¸é, IIS ȯ°æ ¼³Á¤ "µð·ºÅ丮 º¸¾È"À» ¼öÁ¤ÇØ¾ß ÇÕ´Ï´Ù. "¼öÁ¤"À» Ŭ¸¯Çϰí, "À͸í Á¢±Ù"¸¸À» üũÇϰí, ´Ù¸¥ ¸ðµç Çʵå´Â üũ¸¦ ÇØÁ¦ÇϽʽÿÀ.

IIS ¸ðµâ(ISAPI)¸¦ »ç¿ëÇÒ ¶§ ´Ù¸¥ Á¦¾àÀº, PHP_AUTH_* º¯¼ö¸¦ »ç¿ëÇÒ ¼ö ¾ø´Â ´ë½Å, HTTP_AUTHORIZATION º¯¼ö¸¦ »ç¿ëÇÏ°Ô µË´Ï´Ù. Áï, ´ÙÀ½ÀÇ Äڵ带 °í·ÁÇØ¾ßÇÕ´Ï´Ù. list($user, $pw) = explode(':', base64_decode(substr($_SERVER['HTTP_AUTHORIZATION'], 6)));

IIS ÁÖÀÇ:: IIS¿¡¼­ HTTP ÀÎÁõÀ» ÀÛµ¿ÇÏ°Ô ÇÏ·Á¸é, PHP Áö½ÃÀÚ cgi.rfc2616_headers¸¦ 0(ÃʱⰪ)À¸·Î ¼³Á¤ÇØ¾ß ÇÕ´Ï´Ù.

Âü°í: ¾ÈÀü ¸ðµå¿¡¼­´Â ½ºÅ©¸³Æ®ÀÇ uid°¡ WWW-Authenticate Çì´õÀÇ realm ºÎºÐ¿¡ Ãß°¡µË´Ï´Ù.
ÃßõÃßõ : 174 Ãßõ ¸ñ·Ï
¹øÈ£ Á¦¸ñ
2,885
 input ÀÔ·Â ÇÊµå ¾ÕµÚ °ø¹é ½Ç½Ã°£ Á¦°Å
2,884
 Placeholder Æ÷Ä¿½º½Ã °¨Ãß±â
2,883
 MySQL Áߺ¹µÈ µ¥ÀÌÅ͸¦ »èÁ¦
2,882
 MySQL Áߺ¹ µ¥ÀÌÅÍ È®ÀÎ
2,881
 sessionStorage.getItem ¿Í sessionStorage.setItem
2,880
 Á¦ÀÌÄõ¸® ·£´ýÀ¸·Î ¹è°æ»ö º¯°æ
2,879
 preg match¿¡ °üÇÑ Á¤±Ô½Ä
2,878
 Stream an audio file with MediaPlayer ¿Àµð¿À ÆÄÀÏ ½ºÆ®¸®¹Ö Çϱâ
2,877
 Audio Streaming PHP Code
2,876
 PHP $ SERVER ȯ°æ º¯¼ö Á¤¸®
2,875
 Vimeo (ºñ¸Þ¿À) API ¸¦ »ç¿ëÇÏ¿© Ç÷¹À̾î ÄÁÆ®·ÑÇϱâ
2,874
 iframe »ç¿ë½Ã ÇÏ´Ü¿¡ ¹ß»ýÇÏ´Â °ø¹é Á¦°Å¹æ¹ý
2,873
 ¾ÆÀÌÇÁ·¹ÀÓ(iframe) Àüüȭ¸é °¡´ÉÇÏ°Ô Çϱâ
2,872
 ºÎÆ®½ºÆ®·¦(bootstrapk)¿¡¼­ »ç¿ëÇÏ´Â class¸í Á¤¸®
2,871
 ºÎÆ®½ºÆ®·¦ CSS
2,870
 Å©·Ò¿¡¼­ ¸¶Áø Á¶Àý
2,869
 PHP ÇöÀç ÆäÀÌÁöÀÇ µµ¸ÞÀθíÀ̳ª urlµîÀÇ Á¤º¸ ¾Ë¾Æ¿À±â
2,868
 PHP preg match all()
2,867
 PHP ·Î À¥ÆäÀÌÁö ±Ü¾î¿À±â ¸ðµç ¹æ¹ý ÃÑÁ¤¸®!
2,866
 [PHP] ¿ø°ÝÁö ÆÄÀÏ ÁÖ¼Ò ³ëÃâ ¾ÈÇϰí curl·Î ´Ù¿î·Îµå ¹Þ±â
2,865
 PHP ÇÔ¼ö Á¤¸®
2,864
 ¾ÆÀÌÇÁ·¹ÀÓ(iframe) ºñÀ² À¯ÁöÇϸ鼭 Å©±â Á¶ÀýÇÏ´Â ¹æ¹ý
2,863
 PHP ¹è¿­¿¡¼­ ¹«ÀÛÀ§·Î Çϳª »Ì¾ÆÁÖ´Â array rand() ÇÔ¼ö
2,862
 PHP Á¤±Ô½Ä Á¤¸®
2,861
 PHP Á¤±Ô½ÄÀ» Ȱ¿ëÇÑ ÅÂ±× ¹× ƯÁ¤ ¹®ÀÚ¿­ Á¦°Å ¹× ÃßÃâ ¹æ¹ý
2,860
 php Å©·Ñ¸µ ¶Ç´Â ÆÄ½Ì ÇÔ¼ö, Á¤±Ô½Ä ¸ðÀ½
2,859
 Á¦ÀÌÄõ¸® ±âº» ¸í·É¾î
2,858
 À¥ÆäÀÌÁö °¡·Î ¸ðµå¼¼·Î ¸ðµå ÀνÄÇϱâ
2,857
 ¸ð¹ÙÀÏ À¥ È­¸é °­Á¦ ȸÀü(°¡·Î¸ðµå °íÁ¤)
2,856
 [HTML5]¿¡¼­ frameset ´ëü ¹æ¹ý°ú iframe ¼Ó¼º
¸ñ·Ï
¹ÂÁ÷Æ®·ÎÆ® ºÎ»ê±¤¿ª½Ã ºÎ»êÁø±¸ °¡¾ßµ¿ ¤Ó °³ÀÎÁ¤º¸Ãë±Þ¹æÄ§
Copyright ¨Ï musictrot All rights reserved.