[Previo por Fecha] [Siguiente por Fecha] [Previo por Hilo] [Siguiente por Hilo]
[Hilos de Discusión] [Fecha] [Tema] [Autor]On Thu, 13 Jul 2000, Antonio Molina wrote: > HTTP/1.0 401 Unauthorized > Proxy-Connection: close > WWW-Authenticate: Basic realm=Sitio > > Este encabezado hace que aparesca el prompt del password > como obtengo y uso el resultado enviado > > como le contesto que la password es ok como, como, como ... > > ... alguien me puede echar una mano Bueno, la pregunta no esta relacionada no con perl ni con Linux, sino con HTTP y CGI, pero sale intento de respuesta. Por qué no usas los metodos estandar de apache (require, AuthName, etc.)? Los scripts CGI, independientemente del lenguaje empleado no tienen(1) acceso a esa información. Me explico: el servidor, cuando necesita autentificar el acceso a ciertas entidades verifica la existencia de un 'Authorization: <auth_type> <cookie>' entre los encabezados de la solicitud, en donde si <auth_type> es 'Basic', <cookie> es la cadena "<user_id>:<plain_text_password>" codificada en Base64.(2) Cuando no existe el 'Authorization:...' o la dupla en <cookie> no es acceptada es cuando se emite el código de respuesta 401 y el 'WWW-Authenticate: ...' El problema consite en que, por seguridad el protocolo CGI prohibe explicitamente que los scripts reciban el 'Authorization: ...' tal cual (sólo pueden recibir el <auth_type>) y de ahí que si bien pueden emitir el 401 no puedan ser usados para validar el acceso. Apache tiene varios módulos (mod_auth*) que en una face previa se encargan de esos menesteres, pero si lo necesitas puedes hacer tus propios módulos de autentificación (normalmente en C o con mod_perl), pero no usando la inteface CGI. Saludos Salvador Ortiz Notas: (1) Por "default". Por ejemplo el código de apache se puede hackear para permitirlo. (2) Lo que por cierto en términos de seguridad es malísimo. El tipo 'Digest' es mucho mejor pero mas complicado.