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">
  <title>Autoryzacja 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 <function>header</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
   <function>header</function>.
  <para>
   Przyk�adowy skrypt wymuszaj�cy autoryzacj� klienta:
   <example>
    <title>Autoryzacja 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 Unauthorized&quot;);
    echo &quot;Tekst do wys�ania, je�li u�ytkownik wci�nie przycisk Anuluj\n&quot;;
    exit;
  } else {
    echo &quot;&lt;p&gt;Hej $PHP_AUTH_USER.&lt;/p&gt;&quot;;
    echo &quot;&lt;p&gt;Twoje has�o to $PHP_AUTH_PW.&lt;/p&gt;&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
   <emphasis>WWW-Authenticate</emphasis> przed
   <errorcode>HTTP/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 <literal>AuthType</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>
     <title>Autoryzacja 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 Unauthorized&quot;);
    echo &quot;Musisz poda� poprawny login i has�o by wej�� na t� stron�\n&quot;;
    exit;
  }
 
  if(!isset($PHP_AUTH_USER) || ($SeenBefore == 1 &amp;&amp; !strcmp($OldAuth, 
$PHP_AUTH_USER)) ) {
   authenticate();
  } 
  else {
   echo &quot;&lt;/p&gt;Witaj: $PHP_AUTH_USER&lt;br&gt;&quot;;
   echo &quot;Poprzenio: $OldAuth&quot;;
   echo &quot;&lt;form action=\&quot;$PHP_SELF\&quot; METHOD=POST&gt;\n&quot;;
   echo &quot;&lt;input type=\&quot;hidden\&quot; name=\&quot;SeenBefore\&quot; 
value=\&quot;1\&quot;&gt;\n&quot;;
   echo &quot;&lt;input type=\&quot;hidden\&quot; name=\&quot;OldAuth\&quot; 
value=\&quot;$PHP_AUTH_USER\&quot;&gt;\n&quot;;
   echo &quot;&lt;input type=\&quot;submit\&quot; value=\&quot;Re 
Authenticate\&quot;&gt;\n&quot;;
   echo &quot;&lt;/form&gt;&lt;/p&gt;\n&quot;;
  }
?>
   </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 serwera kodu 401,
   zatem przej�cie wstecz a nast�pnie do przodu otworzy stron�, chyba, �e
   wymagania co do danych autoryzacji zmieni�y si�. U�ytkownik mo�e jednak
   u�y� klawisza '_' by usun�c dane o autoryzacji.
  </simpara>
  <simpara>
   Autoryzacja HTTP nie dzia�a je�li u�ywasz serwera Microsoft IIS i
   PHP w wersji CGI. Powodem s� pewne ograniczenia IIS.
  </simpara>

 </chapter>

<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
sgml-parent-document:nil
sgml-default-dtd-file:"../../manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->


Reply via email to