cvs: phpdoc-es /features http-auth.xml

From: Date: Thu, 30 May 2002 16:27:22 +0000
Subject: cvs: phpdoc-es /features http-auth.xml
Groups: php.doc 
Request: Send a blank email to phpdoc+get-969346016@lists.php.net to get a copy of this message
rafael Thu May 30 12:27:22 2002 EDT Modified files: /phpdoc-es/features http-auth.xml Log: Translation updated to PHP 4.x Index: phpdoc-es/features/http-auth.xml diff -u phpdoc-es/features/http-auth.xml:1.7 phpdoc-es/features/http-auth.xml:1.8 --- phpdoc-es/features/http-auth.xml:1.7 Wed Dec 12 15:47:53 2001 +++ phpdoc-es/features/http-auth.xml Thu May 30 12:27:22 2002 @@ -16,34 +16,49 @@ rellenas con el nombre de usuario, la contrase&ntilde;a y el tipo de autentificaci&oacute;n respectivamente. S&oacute;lo autentificaci&oacute;n "B&aacute;sica" esta soportada en este momento. Consulte la funci&oacute;n - <function>header</function> para m&aacute;s informaci&oacute;n.</simpara> <para> + <function>header</function> para m&aacute;s informaci&oacute;n.</simpara> + + <para> Un fragmento de script de ejmplo que fuerce la autentificaci&oacute;n del cliente en una p&aacute;gina ser&iacute;a como el siguiente: <example> <title>Ejemplo de autentificaci&oacute;n HTTP</title> - <programlisting role="php"> -&lt;?php - if(!isset($PHP_AUTH_USER)) { - Header(&quot;WWW-Autentificaci&oacute;n: Basic realm=\&quot;Mi Reino\&quot;&quot;); - Header(&quot;HTTP/1.0 401 No autorizado&quot;); - echo &quot;Texto a enviar si pulsa el bot&oacute;n Cancelar\n&quot;; + <programlisting role="php"> +<![CDATA[ +<?php + if (!isset($PHP_AUTH_USER)) { + header("WWW-Authenticate: Basic realm=\"My Realm\""); + header("HTTP/1.0 401 Unauthorized"); + echo "Text to send if user hits Cancel button\n"; exit; - } else { - echo &quot;Hola $PHP_AUTH_USER.&lt;P&gt;&quot;; - echo &quot;Ha introducido $PHP_AUTH_PW como su contrase&ntilde;a.&lt;P&gt;&quot;; - } - ?> - </programlisting> + } else { + echo "<p>Hello $PHP_AUTH_USER.</p>"; + echo "<p>You entered $PHP_AUTH_PW as your password.</p>"; + } +?> +]]> + </programlisting> </example></para> + <note> + <title>Nota</title> + <para> + Por favor tener cuidado cuando esteis programando las lines de cabecera HTTP. + Para garantizar la maxima compatibilidad con todos los clientes, la palabra + clave &quot;Basic&quot; debe de ser escrita con &quot;B&quot; may&uacute;scula, la cadena + de texto debe estar incluida entre comillas dobles (no simples) y un espacio debe + preceder el c&oacute;digo &quot;401&quot; en la linea de cabecera &quot;HTTP/1.0 401&quot; + </para> + </note> <para> En vez de, sencillamente, mostrar $PHP_AUTH_USER y - $PHP_AUTH_PW, seguramente quiera comprobar la validez del nombre + $PHP_AUTH_PW, seguramente querais comprobar la validez del nombre de usuario y la contrase&ntilde;a. Tal vez enviando una consulta a una - base de datos o buscando el usuario en un fichero dbm.</para> + base de datos o buscando el usuario en un fichero dbm. + </para> <para> - Vigile aqu&iacute; los navegadores Interner Explorer con bugs. Parecen muy + Vigilar aqu&iacute; los navegadores Interner Explorer con bugs. Parecen muy quisquillosos con el orden de las cabeceras. Enviar la cabecera <emphasis>WWW-Autentificaci&oacute;n</emphasis> antes que la cabecera <errorcode>HTTP/1.0 401</errorcode> parece ser el truco por ahora.</para> @@ -55,12 +70,24 @@ ser&aacute;n rellenadas si alg&uacute;n tipo de autentificaci&oacute;n externo ha sido activado para una p&aacute;gina en particular. En este caso, la variable $REMOTE_USER puede ser usada para identificar al usuario - autentificado externamente.</simpara> + autentificado externamente. + </simpara> + + <note> + <title>Configuration Note</title> + <para> + PHP usa la directiva <literal>AuthType</literal> para determinar + si una autentificaci&oacute;n externa esta en uso. Recordar no usar esta + directiva cuando querais usar la autentificaci&oacute;n de PHP (si no + todo intentento de autentificaci&oacute;n fallar&aacute;) + </para> + </note> <simpara> Nota, a pesar de todo, lo ya dicho no proteje de que alguien que controle una URL no autentificada robe contrase&ntilde;as de URLs - autentificadas en el mismo servidor.</simpara> + autentificadas en el mismo servidor. + </simpara> <simpara> Tanto Netscape como Internet Explorer borrar&aacute;n la cach&eacute; de la @@ -68,49 +95,52 @@ recibir una respuesta 401 del servidor. Esto puede usarse, de forma efectiva, para "desconectar" a un usuario, forzandole a reintroducir su nombre y contrase&ntilde;a. Algunas personas usan esto - para "hacer caducar" entradas, o para proveer un bot&oacute;n de + para &quot;hacer caducar&quot; entradas, o para proveer un bot&oacute;n de "desconectar".</simpara> <simpara></simpara> <example> <title>Ejemplo de autentificaci&oacute;n HTTP forzando una reentrada</title> - - <programlisting role="php"> -&lt;?php + <programlisting role="php"> +<![CDATA[ +<?php function authenticate() { - Header( &quot;WWW-Authenticate: Basic realm=\&quot;Test Autentificaci&oacute;n Sistema\&quot;&quot;); - Header( &quot;HTTP/1.0 401 No autorizado&quot;); - echo &quot;Debe introducir un nombre de usuario y contrase&ntilde;a v&aacute;lidos para acceder a - este recurso\n&quot;; - exit; + header( "WWW-Authenticate: Basic realm=\"Test Authentication System\""); + header( "HTTP/1.0 401 Unauthorized"); + echo "You must enter a valid login ID and password to access this resource\n"; + 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 &quot;Bienvenido: $PHP_AUTH_USER&lt;BR&gt;&quot;; - echo &quot;Old: $OldAuth&quot;; - echo &quot;&lt;FORM ACTION=\&quot;$PHP_SELF\&quot; METHOD=POST&gt;\n&quot;; - echo &quot;&lt;INPUT TYPE=HIDDEN NAME=\&quot;SeenBefore\&quot; VALUE=\&quot;1\&quot;&gt;\n&quot;; - echo &quot;&lt;INPUT TYPE=HIDDEN NAME=\&quot;OldAuth\&quot; VALUE=\&quot;$PHP_AUTH_USER\&quot;&gt;\n&quot;; - echo &quot;&lt;INPUT TYPE=Submit VALUE=\&quot;Re Authenticate\&quot;&gt;\n&quot;; - echo &quot;&lt;/FORM&gt;\n&quot;; + echo "<p>Welcome: $PHP_AUTH_USER<br>"; + echo "Old: $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> Este comportamiento no es requerido por el est&aacute;ndar de autentificaci&oacute;n b&aacute;sica de HTTP, por lo que nunca debe depender de esto. Pruebas con Lynx han demostrado que Lynx no borra las credenciales de autentificaci&oacute;n con una respuesta 401 del servidor, por lo que pulsando atr&aacute;s y despu&eacute;s adelante abrir&iacute;a el recurso de nuevo - (siempre que los requerimientos de contrase&ntilde;a no hayan cambiado). </simpara> + (siempre que los requerimientos de contrase&ntilde;a no hayan cambiado). + </simpara> <simpara> - Adem&aacute;s note que esto no funciona usando el servidor IIS de Microsoft - y la versi&oacute;n CGI de PHP debido a una limitaci&oacute;n del IIS</simpara> + Adem&aacute;s tener en cuanta que esto no funciona usando el servidor IIS de Microsoft + y la versi&oacute;n CGI de PHP debido a una limitaci&oacute;n del IIS + </simpara> </chapter> @@ -130,4 +160,7 @@ 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 -->

« previous php.doc (#969346016) next »