ȸ¿ø°¡ÀԡžÆÀ̵ð/ºñ¹øã±â
ȨÀ¸·Î

PHP·Î HTTP ÀÎÁõÇϱâ
12³â Àü
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 ºÎºÐ¿¡ Ãß°¡µË´Ï´Ù.
ÃßõÃßõ : 631 Ãßõ ¸ñ·Ï
¹øÈ£ Á¦¸ñ
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.