[PHP-DOC] cvs: phpdoc-pl /features http-auth.xml
leszek Sat Jun 22 04:27:17 2002 EDT Modified files: /phpdoc-pl/features http-auth.xml Log: [leszek] Imported from main CVS Index: phpdoc-pl/features/http-auth.xml diff -u phpdoc-pl/features/http-auth.xml:1.11 phpdoc-pl/features/http-auth.xml:1.12 --- phpdoc-pl/features/http-auth.xml:1.11 Fri Jun 21 18:40:22 2002 +++ phpdoc-pl/features/http-auth.xmlSat Jun 22 04:27:16 2002 -1,6 +1,6 ?xml version=1.0 encoding=iso-8859-2? !-- EN-Revision: 1.24 Maintainer: slawek Status: ready -- -!-- $Revision: 1.11 $ -- +!-- $Revision: 1.12 $ -- chapter id=features.http-auth titleAutoryzacja HTTP w PHP/title
[PHP-DOC] cvs: phpdoc-pl /features http-auth.xml
slawek Fri Jun 21 18:40:22 2002 EDT Modified files: /phpdoc-pl/features http-auth.xml Log: Updated to EN 1.24 Index: phpdoc-pl/features/http-auth.xml diff -u phpdoc-pl/features/http-auth.xml:1.10 phpdoc-pl/features/http-auth.xml:1.11 --- phpdoc-pl/features/http-auth.xml:1.10 Mon Feb 11 16:51:55 2002 +++ phpdoc-pl/features/http-auth.xmlFri Jun 21 18:40:22 2002 -1,6 +1,6 ?xml version=1.0 encoding=iso-8859-2? -!-- EN-Revision: 1.21 Maintainer: slawek Status: ready -- -!-- $Revision: 1.10 $ -- +!-- EN-Revision: 1.24 Maintainer: slawek Status: ready -- +!-- $Revision: 1.11 $ -- chapter id=features.http-auth titleAutoryzacja HTTP w PHP/title -22,14 +22,14 programlisting role=php ![CDATA[ ?php - if (!isset($PHP_AUTH_USER)) { + if (!isset($_SERVER['PHP_AUTH_USER'])) { header(WWW-Authenticate: Basic realm=\My Realm\); header(HTTP/1.0 401 Unauthorized); echo Tekst do wys³ania, je¶li u¿ytkownik wci¶nie przycisk Anuluj\n; exit; } else { -echo pHej $PHP_AUTH_USER./p; -echo pTwoje has³o to $PHP_AUTH_PW./p; +echo pHej {$_SERVER['PHP_AUTH_USER']}./p; +echo pTwoje has³o to {$_SERVER['$PHP_AUTH_PW']}./p; } ? ]] -101,15 +101,15 exit; } - if (!isset($PHP_AUTH_USER) || ($SeenBefore == 1 !strcmp($OldAuth, $PHP_AUTH_USER))) { + if (!isset($_SERVER['PHP_AUTH_USER']) || ($SeenBefore == 1 $OldAuth == +$_SERVER['$PHP_AUTH_USER']))) { authenticate(); } else { - echo pWitaj: $PHP_AUTH_USERbr; - echo Poprzenio: $OldAuth; - echo form action='$PHP_SELF' METHOD='POST'\n; + echo pWitaj: {$_SERVER['$PHP_AUTH_USER']}br; + echo Poprzenio: {$_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='$PHP_AUTH_USER'\n; + echo input type='hidden' name='OldAuth' value='{$_SERVER['$PHP_AUTH_USER']}'\n; echo input type='submit' value='Re Authenticate'\n; echo /form/p\n; } -129,6 +129,14 Autoryzacja HTTP nie dzia³a je¶li u¿ywasz serwera Microsoft IIS i PHP w wersji CGI. Powodem s± pewne ograniczenia IIS. /simpara + + note + para +Je¶li w³±czony jest link linkend=ini.safe-modetryb bezpieczny/link, +uid skryptu jest doklejany do pola literalrealm/literal nag³ówka +literalWWW-Authenticate/literal. + /para + /note /chapter
[PHP-DOC] cvs: phpdoc /pl/features http-auth.xml
slawek Sat Dec 22 12:17:17 2001 EDT Modified files: /phpdoc/pl/features http-auth.xml Log: Updated to EN 1.20 Index: phpdoc/pl/features/http-auth.xml diff -u phpdoc/pl/features/http-auth.xml:1.8 phpdoc/pl/features/http-auth.xml:1.9 --- phpdoc/pl/features/http-auth.xml:1.8Thu Dec 20 07:40:43 2001 +++ phpdoc/pl/features/http-auth.xmlSat Dec 22 12:17:17 2001 @@ -1,6 +1,6 @@ ?xml version=1.0 encoding=iso-8859-2? -!-- EN-Revision: 1.19 Maintainer: slawek Status: ready -- -!-- $Revision: 1.8 $ -- +!-- EN-Revision: 1.20 Maintainer: slawek Status: ready -- +!-- $Revision: 1.9 $ -- chapter id=features.http-auth titleAutoryzacja HTTP w PHP/title @@ -22,7 +22,7 @@ programlisting role=php ![CDATA[ ?php - if(!isset($PHP_AUTH_USER)) { + if (!isset($PHP_AUTH_USER)) { header(WWW-Authenticate: Basic realm=\My Realm\); header(HTTP/1.0 401 Unauthorized); echo Tekst do wys³ania, je¶li u¿ytkownik wci¶nie przycisk Anuluj\n; @@ -101,16 +101,16 @@ exit; } - if(!isset($PHP_AUTH_USER) || ($SeenBefore == 1 !strcmp($OldAuth, $PHP_AUTH_USER)) ) { + if (!isset($PHP_AUTH_USER) || ($SeenBefore == 1 !strcmp($OldAuth, +$PHP_AUTH_USER))) { authenticate(); } else { - echo /pWitaj: $PHP_AUTH_USERbr; + echo pWitaj: $PHP_AUTH_USERbr; echo Poprzenio: $OldAuth; - echo form action=\$PHP_SELF\ METHOD=POST\n; - echo input type=\hidden\ name=\SeenBefore\ value=\1\\n; - echo input type=\hidden\ name=\OldAuth\ value=\$PHP_AUTH_USER\\n; - echo input type=\submit\ value=\Re Authenticate\\n; + echo form action='$PHP_SELF' METHOD='POST'\n; + echo input type='hidden' name='SeenBefore' value='1'\n; + echo input type='hidden' name='OldAuth' value='$PHP_AUTH_USER'\n; + echo input type='submit' value='Re Authenticate'\n; echo /form/p\n; } ?
[PHP-DOC] cvs: phpdoc /pl/features http-auth.xml
leszek Thu Dec 20 07:40:43 2001 EDT Modified files: /phpdoc/pl/features http-auth.xml Log: Update Index: phpdoc/pl/features/http-auth.xml diff -u phpdoc/pl/features/http-auth.xml:1.7 phpdoc/pl/features/http-auth.xml:1.8 --- phpdoc/pl/features/http-auth.xml:1.7Mon Dec 17 23:10:15 2001 +++ phpdoc/pl/features/http-auth.xmlThu Dec 20 07:40:43 2001 @@ -1,6 +1,6 @@ ?xml version=1.0 encoding=iso-8859-2? !-- EN-Revision: 1.19 Maintainer: slawek Status: ready -- -!-- $Revision: 1.7 $ -- +!-- $Revision: 1.8 $ -- chapter id=features.http-auth titleAutoryzacja HTTP w PHP/title
[PHP-DOC] cvs: phpdoc /pl/features http-auth.xml
leszek Mon Dec 17 23:10:15 2001 EDT Modified files: /phpdoc/pl/features http-auth.xml Log: Updated to 1.19 Added comments for revcheck Index: phpdoc/pl/features/http-auth.xml diff -u phpdoc/pl/features/http-auth.xml:1.6 phpdoc/pl/features/http-auth.xml:1.7 --- phpdoc/pl/features/http-auth.xml:1.6Sun Dec 16 22:59:34 2001 +++ phpdoc/pl/features/http-auth.xmlMon Dec 17 23:10:15 2001 @@ -1,5 +1,6 @@ ?xml version=1.0 encoding=iso-8859-2? -!-- $Revision: 1.6 $ -- +!-- EN-Revision: 1.19 Maintainer: slawek Status: ready -- +!-- $Revision: 1.7 $ -- chapter id=features.http-auth titleAutoryzacja HTTP w PHP/title @@ -19,17 +20,19 @@ example titleAutoryzacja HTTP/title programlisting role=php -lt;?php +![CDATA[ +?php if(!isset($PHP_AUTH_USER)) { -header(quot;WWW-Authenticate: Basic realm=\quot;My Realm\quot;quot;); -header(quot;HTTP/1.0 401 Unauthorizedquot;); -echo quot;Tekst do wys³ania, je¶li u¿ytkownik wci¶nie przycisk Anuluj\nquot;; +header(WWW-Authenticate: Basic realm=\My Realm\); +header(HTTP/1.0 401 Unauthorized); +echo Tekst do wys³ania, je¶li u¿ytkownik wci¶nie przycisk Anuluj\n; exit; } else { -echo quot;lt;pgt;Hej $PHP_AUTH_USER.lt;/pgt;quot;; -echo quot;lt;pgt;Twoje has³o to $PHP_AUTH_PW.lt;/pgt;quot;; +echo pHej $PHP_AUTH_USER./p; +echo pTwoje has³o to $PHP_AUTH_PW./p; } ? +]] /programlisting /example/para @@ -89,27 +92,29 @@ example titleAutoryzacja HTTP z wymuszeniem przelogowania/title programlisting role=php -lt;?php +![CDATA[ +?php function authenticate() { -header( quot;WWW-Authenticate: Basic realm=\quot;Testowy system autoryzacji\quot;quot;); -header( quot;HTTP/1.0 401 Unauthorizedquot;); -echo quot;Musisz podaæ poprawny login i has³o by wej¶æ na tê stronê\nquot;; +header( WWW-Authenticate: Basic realm=\Testowy system autoryzacji\); +header( HTTP/1.0 401 Unauthorized); +echo Musisz podaæ poprawny login i has³o by wej¶æ na tê stronê\n; exit; } - if(!isset($PHP_AUTH_USER) || ($SeenBefore == 1 amp;amp; !strcmp($OldAuth, $PHP_AUTH_USER)) ) { + if(!isset($PHP_AUTH_USER) || ($SeenBefore == 1 !strcmp($OldAuth, +$PHP_AUTH_USER)) ) { authenticate(); } else { - echo quot;lt;/pgt;Witaj: $PHP_AUTH_USERlt;brgt;quot;; - echo quot;Poprzenio: $OldAuthquot;; - echo quot;lt;form action=\quot;$PHP_SELF\quot; METHOD=POSTgt;\nquot;; - echo quot;lt;input type=\quot;hidden\quot; name=\quot;SeenBefore\quot; value=\quot;1\quot;gt;\nquot;; - echo quot;lt;input type=\quot;hidden\quot; name=\quot;OldAuth\quot; value=\quot;$PHP_AUTH_USER\quot;gt;\nquot;; - echo quot;lt;input type=\quot;submit\quot; value=\quot;Re Authenticate\quot;gt;\nquot;; - echo quot;lt;/formgt;lt;/pgt;\nquot;; + echo /pWitaj: $PHP_AUTH_USERbr; + echo Poprzenio: $OldAuth; + echo form action=\$PHP_SELF\ METHOD=POST\n; + echo input type=\hidden\ name=\SeenBefore\ value=\1\\n; + echo input type=\hidden\ name=\OldAuth\ value=\$PHP_AUTH_USER\\n; + echo input type=\submit\ value=\Re Authenticate\\n; + echo /form/p\n; } ? +]] /programlisting /example simpara @@ -136,6 +141,7 @@ sgml-always-quote-attributes:t sgml-indent-step:1 sgml-indent-data:t +indent-tabs-mode:nil sgml-parent-document:nil sgml-default-dtd-file:../../manual.ced sgml-exposed-tags:nil
[PHP-DOC] cvs: phpdoc /pl/features http-auth.xml
leszek Sun Nov 4 03:52:50 2001 EDT Modified files: /phpdoc/pl/features http-auth.xml Log: Corrected missing closing tags Index: phpdoc/pl/features/http-auth.xml diff -u phpdoc/pl/features/http-auth.xml:1.1 phpdoc/pl/features/http-auth.xml:1.2 --- phpdoc/pl/features/http-auth.xml:1.1Fri Nov 2 18:29:50 2001 +++ phpdoc/pl/features/http-auth.xmlSun Nov 4 03:52:50 2001 @@ -1,5 +1,5 @@ ?xml encoding=iso-8859-1? -!-- $Revision: 1.1 $ -- +!-- $Revision: 1.2 $ -- chapter id=features.http-auth titleAutoryzacja HTTP w PHP/title @@ -13,7 +13,7 @@ $PHP_AUTH_USER, $PHP_AUTH_PW i $PHP_AUTH_TYPE zawieraj±cymi odpowiednio nazwê u¿ytkownika, has³o i typ autoryzacji. Obecnie obs³ugiwany jest jedynie typ Basic. Wiêcej informacji znajdziesz w opisie funkcji - functionheader/function. + functionheader/function./simpara para Przyk³adowy skrypt wymuszaj±cy autoryzacjê klienta: example
[PHP-DOC] cvs: phpdoc /pl/features http-auth.xml
slawek Fri Nov 2 18:29:50 2001 EDT Added files: /phpdoc/pl/features http-auth.xml Log: Finished translation Index: phpdoc/pl/features/http-auth.xml +++ phpdoc/pl/features/http-auth.xml ?xml encoding=iso-8859-1? !-- $Revision: 1.1 $ -- chapter id=features.http-auth titleAutoryzacja HTTP w PHP/title simpara Autoryzacja HTTP jest obs³ugiwana przez PHP tylko wtedy, gdy PHP pracuje jako modu³ Apache'a, nie jest dostêpna w trybie CGI. W skrypcie mo¿na u¿yæ funkcji functionheader/function by wys³aæ do przegl±darki komunikat Wymagana autoryzacja, co spowoduje wy¶wietlenie okienka z polami U¿ytkownik i Has³o. Po wype³nieniu przez u¿ytkownika tych pól, URL zawieraj±cy skrypt PHP zostanie ponownie wywo³any ze zmiennymi $PHP_AUTH_USER, $PHP_AUTH_PW i $PHP_AUTH_TYPE zawieraj±cymi odpowiednio nazwê u¿ytkownika, has³o i typ autoryzacji. Obecnie obs³ugiwany jest jedynie typ Basic. Wiêcej informacji znajdziesz w opisie funkcji functionheader/function. para Przyk³adowy skrypt wymuszaj±cy autoryzacjê klienta: example titleAutoryzacja HTTP/title programlisting role=php lt;?php if(!isset($PHP_AUTH_USER)) { header(quot;WWW-Authenticate: Basic realm=\quot;My Realm\quot;quot;); header(quot;HTTP/1.0 401 Unauthorizedquot;); echo quot;Tekst do wys³ania, je¶li u¿ytkownik wci¶nie przycisk Anuluj\nquot;; exit; } else { echo quot;lt;pgt;Hej $PHP_AUTH_USER.lt;/pgt;quot;; echo quot;lt;pgt;Twoje has³o to $PHP_AUTH_PW.lt;/pgt;quot;; } ? /programlisting /example/para note para Nale¿y uwa¿aæ z linijkami dodawanymi do nag³ówka HTTP. W celu zachowania maksymalnej zgodno¶ci ze wszystkimi klientami, s³owo Basic powinno zaczynaæ siê du¿± liter± B, warto¶æ realm powinna byæ otoczona cudzys³owami (nie apostrofami), i dok³adnie jeden znak odstêpu powinien poprzedzaæ kod 401 w linii HTTP/1.0 401. /para /note para Zamiast wy¶wietlaæ warto¶ci $PHP_AUTH_USER i $PHP_AUTH_PW, zapewne zechcesz sprawdziæ poprawno¶æ nazwy u¿ytkownika i has³a. Na przyk³ad poprzez zapytanie do bazy danych lub odnalezienie u¿ytkownika w pliku dbm. /para para Nale¿y uwa¿aæ na kapry¶ne przegl±darki Internet Explorer. S± wra¿liwe na kolejno¶æ wysy³anych nag³ówków HTTP. Wys³anie nag³owka emphasisWWW-Authenticate/emphasis przed errorcodeHTTP/1.0 401/errorcode powinno rozwi±zaæ problem. /para simpara Aby zapobiec sytuacji w której kto¶ napisze skrypt wykradaj±cy has³o wys³ane tradycyjnym zewnêtrznym mechanizmem, zmienne PHP_AUTH nie bêd± ustawiane, je¶li dla danej strony aktywna jest autoryzacja zewnêtrzna. W tym wypadku, aby uzyskaæ nazwê u¿ytkownika zautoryzowanego zewnêtrznie, nale¿y skorzystaæ ze zmiennej $REMOTE_USER. /simpara note para Aby wykryæ czy mia³a miejsce zewnêtrzna autoryzacja, PHP sprwadza obecno¶æ dyrektywy literalAuthType/literal. Pamiêtaj zatem, by nie stosowaæ tej dyrektywy w miejscach, gdzie bêdzie u¿ywana autoryzacja PHP. Inaczej ka¿da próba autoryzacji zakoñczy siê niepowodzeniem. /para /note simpara Powy¿sza metoda nie zapobiega jednak wykradaniu hase³ do stron wymagaj±cych autoryzacji przez kogo¶, kto na tym samym serwerze kontroluje strony nie wymagaj±ce autoryzacji. /simpara simpara Zarówno Netscape Navigator jak i Internet Explorer opró¿ni± bufor autoryzacji po otrzymaniu od serwera kodu 401. Mo¿na w ten sposób wylogowaniæ u¿ytkownika i zmusiæ go do ponownego wys³ania nazwy u¿ytkownika i has³a. Tej metody mo¿na u¿yæ do wylogowania u¿ytkownika po okre¶lonym czasie lub stworzenia przycisku Wyloguj. /simpara simpara/simpara example titleAutoryzacja HTTP z wymuszeniem przelogowania/title programlisting role=php lt;?php function authenticate() { header( quot;WWW-Authenticate: Basic realm=\quot;Testowy system autoryzacji\quot;quot;); header( quot;HTTP/1.0 401 Unauthorizedquot;); echo quot;Musisz podaæ poprawny login i has³o by wej¶æ na tê stronê\nquot;; exit; } if(!isset($PHP_AUTH_USER) || ($SeenBefore == 1 amp;amp; !strcmp($OldAuth, $PHP_AUTH_USER)) ) { authenticate(); } else { echo quot;lt;/pgt;Witaj: $PHP_AUTH_USERlt;brgt;quot;; echo quot;Poprzenio: $OldAuthquot;; echo quot;lt;form action=\quot;$PHP_SELF\quot; METHOD=POSTgt;\nquot;; echo quot;lt;input type=\quot;hidden\quot; name=\quot;SeenBefore\quot; value=\quot;1\quot;gt;\nquot;; echo quot;lt;input type=\quot;hidden\quot; name=\quot;OldAuth\quot; value=\quot;$PHP_AUTH_USER\quot;gt;\nquot;; echo quot;lt;input type=\quot;submit\quot; value=\quot;Re Authenticate\quot;gt;\nquot;; echo quot;lt;/formgt;lt;/pgt;\nquot;; } ? /programlisting /example simpara Powy¿sza metoda nie jest wymagana przez autoryzacjê HTTP typu Basic, wiêc nie mo¿na na niej polegaæ. Testy z przegl±dark± Lynx pokaza³y, ¿e Lynx nie usuwa danych o autoryzacji po odebraniu od