uno. Descripción general de la certificación básica
Durante el proceso de comunicación del protocolo HTTP, el protocolo HTTP define el proceso de autenticación básica para permitir que el servidor HTTP realice tarjetas de identificación de usuario en el navegador web. Cuando un cliente realiza una solicitud de datos al servidor HTTP, si el cliente no está autenticado, el servidor HTTP verificará el nombre de usuario y la contraseña del cliente a través del proceso de autenticación básica para determinar si el usuario es legal. Después de recibir la solicitud de autenticación de identidad del servidor HTTP, el cliente le pedirá al usuario que ingrese el nombre de usuario y la contraseña, y luego cifre el nombre de usuario y la contraseña con Base64. El texto cifrado cifrado se adjuntará a la información de solicitud. Por ejemplo, cuando el nombre de usuario es anjuta y la contraseña es: 123456, el cliente fusiona el nombre de usuario y la contraseña con ":", y cifra la cadena fusionada con base64 como texto cifrado, y agrega el texto cifrado al encabezado de solicitudes cada vez que se solicitan los datos. Después de cada vez que el servidor HTTP recibe el paquete de solicitud, obtiene la información del usuario adjunta al cliente (Nombre de usuario y contraseña cifrados de Base64) de acuerdo con el protocolo, desenvuelve el paquete de solicitud y verifica el nombre de usuario y la contraseña. Si el nombre de usuario y la contraseña son correctos, devuelve los datos requeridos por el cliente de acuerdo con la solicitud del cliente; De lo contrario, devuelve un código de error o requere al cliente para proporcionar el nombre de usuario y la contraseña.
dos. El proceso de certificación básica
1. El cliente solicita datos del servidor, y el contenido solicitado puede ser una página web u otro tipo de MIME. En este momento, suponiendo que el cliente aún no haya sido verificado, el cliente proporciona la siguiente solicitud al servidor:
Get /index.html http /1.0
Anfitrión: www.google.com
2. El servidor envía el código de solicitud de verificación 401 al cliente, y los datos devueltos por el servidor son aproximadamente como sigue:
Http/1.0 401 no autorizado
Servidor: Sokevo/1.0
Www-autenticate: Basic Realm = "Google.com"
Tipo de contenido: texto/html
Contenido-longitud: xxx
3. Cuando un cliente que cumple con la especificación HTTP1.0 o 1.1 (como IE, Firefox) recibe un valor de retorno 401, aparecerá automáticamente una ventana de inicio de sesión, lo que requiere que el usuario ingrese el nombre del usuario y la contraseña.
4. Después de que el usuario ingresa el nombre de usuario y la contraseña, el nombre de usuario y la contraseña están encriptados en el cifrado Base64, y el texto cifrado se coloca en la información de solicitud anterior. La primera información de solicitud enviada por el cliente se convierte en el siguiente contenido:
Get /index.html http /1.0
Anfitrión: www.google.com
Autorización: básico xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Nota: xxxx .... representa el nombre de usuario y la contraseña cifrados.
5. Después de recibir la información de solicitud anterior, el servidor recupera y descifra la información del usuario después del campo de autorización, y compara y verifica el nombre de usuario y la contraseña descifrados con la base de datos del usuario. Si el nombre de usuario y la contraseña son correctos, el servidor enviará el recurso solicitado al cliente de acuerdo con la solicitud:
tres. Desventajas de la certificación básica
El objetivo de la autenticación básica HTTP es proporcionar funciones simples de autenticación del usuario. El proceso de autenticación es simple y claro, y es adecuado para sistemas o dispositivos con bajos requisitos de seguridad. Por ejemplo, la autenticación de la página de configuración del enrutador utilizado por todos es casi siempre adoptada. La desventaja es que no tiene una estrategia de autenticación flexible y confiable, como la incapacidad de proporcionar función de autenticación de dominio (dominio o reino). Además, la fuerza de cifrado de Base64 es muy baja, lo que solo puede evitar que la búsqueda de Sohu la busque. Por supuesto, el sistema de autenticación básica HTTP también se puede combinar con SSL o Kerberos para lograr un sistema de autenticación con alto rendimiento de seguridad (relativamente)
Cuatro. Código de implementación de Java certificado básico
Httpsession session = request.getSession (); String user = (string) session.getAttribute ("User"); Pase de cuerda; if (user == null) {try {Response.SetcharacterEncoding ("GBK"); PrintWriter UT = Response.getWriter (); Autorización de cadena = request.getheader ("autorización"); if (autorización == NULL || Authorization.equals ("")) {Response.SetStatus (401); Response.setheader ("www-autenticate", "reasm básico =/" por favor ingrese la contraseña del administrador/""); out.print ("¡Perdón por no tener permiso!"); devolver; } String userandpass = new String (new Base64Decoder (). DecodeBuffer (Authorization.Split ("" "") [1]))); if (userandpass.split (":"). Longitud <2) {Response.SetStatus (401); Respuesta.Sheader ("www-Authenticate", "Realm =/" por favor ingrese el administrador/")"); "); out.print ("¡Perdón por no tener permiso!"); despachador = request.getRequestDIspatcher ("index.jsp"); Ex.PrintStackTrace ();Lo anterior es la breve discusión sobre los principios y los métodos de implementación de HTTP utilizando la autenticación básica que se le ofrece. Espero que todos puedan apoyar a Wulin.com más ~