2011-10-20 18 views
5

¿Alguien puede explicar cómo funciona la autenticación http://user:[email protected]? ¿El navegador envía el encabezado Authorization con user:pass codificado en base 64?¿Cómo funciona la autenticación http: // usuario: [email protected]?

Abrí la consola de red en las herramientas de desarrollador de Chrome y cuando lo solicito como http://user:[email protected] no veo que se agregue el encabezado Authorization.

Tengo mucha curiosidad por cómo el navegador envía la contraseña en caso de que use user:[email protected] frente a una URL.

+3

Son solo los encabezados de autorización. No sé cómo lo hace Chrome, pero con Firefox comprueba si el sitio está solicitando autenticación (en la solicitud) y si no lo está, le advierte que 'está a punto de iniciar sesión en el sitio" stackoverflow. com "con el nombre de usuario" usuario ", pero el sitio web no requiere autenticación. Esto puede ser un intento de engañarte. ¿Es "stackoverflow.com" el sitio que desea visitar? 'Y luego, o bien [Sí] corta los detalles de autenticación o [No] cancela la solicitud. A menos que tenga a mano un sitio con autorización, * no * verá los encabezados. –

Respuesta

3

Para inspeccionar los encabezados, debe probar contra un servidor que requiera autenticación. El cliente no enviará ningún encabezado Authorization hasta que el servidor lo solicite, ya que el cliente no sabrá qué método de autenticación requiere el servidor (básico o resumido).


autenticación HTTP se realiza en dos solicitudes:

En primer lugar, una solicitud sin los encabezados de Authorization se envía. El servidor responde con un WWW-Authenticate que le dice al cliente cómo autenticarse. Esto incluye un nombre de dominio y un método de autenticación (de nuevo, esto es básico o digestivo)

El cliente envía una nueva solicitud con un encabezado Authorization adicional. En el caso de basic authentication, esta cabecera es sólo user:pass base64, al igual que usted está diciendo:

Authorization: Basic dXNlcjpwYXNz 

Ahora la contraseña es visible en tránsito, a menos que utilice HTTPS. Una mejor opción es digest authentication, donde los contenidos de WWW-Authenticate y Authorization se explican mejor por wikipedia article. :)

Cuestiones relacionadas