2009-07-07 24 views
7

Parte de nuestro sitio web está protegido con .htaccess style password protection. Cuando intenta acceder a esta área del sitio web, el navegador abre un cuadro de diálogo que le solicita su nombre de usuario y contraseña.¿Cómo acceder programáticamente a un sitio web protegido con contraseña?

Necesito acceder a este programatically (por ejemplo, con una llamada ajax). ¿Cómo me dice el servidor que necesita una contraseña y cómo se la proporciono?

Respuesta

3

En general, http://user:[email protected]

Pero hay algunas deficiencias obvias de seguridad con eso.

Una solución más completa puede ser establecer una variable de sesión después de autenticar a un usuario.

Haga la publicación de AJAX en una secuencia de comandos que verifique la autenticación. Si está autenticado, use CURL para obtener los resultados usando una cuenta autorizada predefinida.

Esto le permite volver a utilizar la autenticación de apache básica, pero evita que se escriban contraseñas en el DOM.

+0

El sitio en cuestión es https, que supongo que reducirá los problemas de seguridad. ¿La URL se pasa al servidor cifrada en una sesión https, supongo que es ...? –

+1

mejor aún httpS: // usuario: [email protected] – KevinDTimm

+0

La URL debe ser segura, pero aún está escribiendo el usuario/pase directamente en el sitio como parte de un href. Incluso si el u/p no puede ser disparado en tránsito, todavía hay algunos problemas allí. – rooskie

2

esto es, por supuesto, no Ajax, pero con wget cliente puede utilizar --http por el usuario y la contraseña --http-banderas

4

jQuery compatible con la autenticación HTTP con su método() Ajax. Algo como esto debería funcionar:

jQuery.ajax({ 
    type: "GET", 
    url: "foo.php", 
    username: "foo", 
    password: "bar" 
}); 

Documentación sobre todas las opciones jQuery.ajax() se puede encontrar aquí: http://docs.jquery.com/Ajax/jQuery.ajax#options

Cuestiones relacionadas