um. Visão geral da certificação básica
Durante o processo de comunicação do protocolo HTTP, o protocolo HTTP define o processo de autenticação básica para permitir que o servidor HTTP execute cartões de identificação de usuário no navegador da Web. Quando um cliente faz uma solicitação de dados ao servidor HTTP, se o cliente não for autenticado, o servidor HTTP verificará o nome de usuário e a senha do cliente através do processo básico de autenticação para determinar se o usuário é legal. Depois de receber a solicitação de autenticação de identidade do servidor HTTP, o cliente solicitará ao usuário inserir o nome e a senha do usuário e, em seguida, criptografará o nome do usuário e a senha com base64. O CipherText criptografado será anexado às informações da solicitação. Por exemplo, quando o nome do usuário é Anjuta e a senha é: 123456, o cliente mescla o nome do usuário e a senha com ":", e criptografa a sequência mesclada com base64 como texto cifra e anexa o ciffertexto ao cabeçalho da solicitação sempre que os dados são solicitados. Depois de cada vez que o servidor HTTP recebe o pacote de solicitação, ele obtém as informações do usuário anexadas ao cliente (nome de usuário e senha criptografadas de base64) de acordo com o protocolo, desembrulham o pacote de solicitação e verifica o nome de usuário e a senha. Se o nome de usuário e a senha estiverem corretos, ele retornará os dados exigidos pelo cliente de acordo com a solicitação do cliente; Caso contrário, ele retorna um código de erro ou re-solicita o cliente para fornecer o nome de usuário e a senha.
dois. O processo de certificação básica
1. O cliente solicita dados do servidor e o conteúdo solicitado pode ser uma página da web ou outro tipo MIME. No momento, assumindo que o cliente ainda não tenha sido verificado, o cliente fornece a seguinte solicitação ao servidor:
Get /index.html http /1.0
Host: www.google.com
2. O servidor envia o código de solicitação de verificação 401 para o cliente, e os dados retornados pelo servidor são aproximadamente os seguintes:
Http/1.0 401 não autorizado
Servidor: Sokevo/1.0
Www-autenticate: brasic realm = "google.com"
Tipo de conteúdo: texto/html
Comprimento de conteúdo: xxx
3. Quando um cliente compatível com a especificação HTTP1.0 ou 1.1 (como IE, Firefox) recebe um valor de retorno 401, uma janela de login aparecerá automaticamente, exigindo que o usuário insira o nome e a senha do usuário.
4. Depois que o usuário insere o nome e a senha do usuário, o nome de usuário e a senha são criptografados na criptografia BASE64, e o texto cipher é colocado nas informações de solicitação anterior. As informações da primeira solicitação enviadas pelo cliente se tornam o seguinte conteúdo:
Get /index.html http /1.0
Host: www.google.com
Autorização: Basic xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Nota: xxxx .... representa o nome de usuário e a senha criptografados.
5. Depois de receber as informações de solicitação acima, o servidor recupera e descriptografa as informações do usuário após o campo de autorização e compara e verifica o nome de usuário e a senha descriptografados com o banco de dados do usuário. Se o nome de usuário e a senha estiverem corretos, o servidor enviará o recurso solicitado ao cliente de acordo com a solicitação:
três. Desvantagens da certificação básica
O objetivo da autenticação básica HTTP é fornecer funções simples de autenticação de usuário. O processo de autenticação é simples e claro e é adequado para sistemas ou dispositivos com baixos requisitos de segurança. Por exemplo, a autenticação da página de configuração do roteador usada por todos é quase sempre adotada. A desvantagem é que ele não possui uma estratégia de autenticação flexível e confiável, como a incapacidade de fornecer função de autenticação de domínio (domínio ou domínio). Além disso, a força de criptografia da Base64 é muito baixa, o que só pode impedir a pesquisa de Sohu a pesquisá -la. Obviamente, o sistema de autenticação básico HTTP também pode ser combinado com SSL ou Kerberos para obter um sistema de autenticação com alto desempenho de segurança (relativamente)
Quatro. Código de implementação Java certificado básico
Session httpSession = request.getSession (); String user = (string) session.getAttribute ("user"); Passe de string; if (user == null) {try {Response.SetcharAcTerEncoding ("GBK"); PrintWriter ut = Response.getWriter (); Autorização da String = request.getheader ("Autorização"); if (autorização == null || autorização.equals ("" ")) {Response.SetStatus (401); Response.setheader ("www-autenticate", "reino básico =/" Por favor, digite a senha do administrador/""); out.print ("Desculpe por não ter permissão !!"); retornar; } String userAndPass = new String (new Base64Decoder (). DecodeBuffer (Authorization.split ("" ") [1])); if (userAndpass.split (": "). Length <2) {Response.SetStus (401); Response. por não ter permissão !! "); return;} user = userAndpass.split (": ") [0]; pass = userAndpass.split (": ") [1]; if (user.equals (" 111 ") && pass.equals (" 111 ")) {session) Dispation.Forward (Response); Dispatcher = request.getRequestDispatcher ("index.jsp");O exposto acima é a breve discussão sobre os princípios e métodos de implementação do HTTP usando a autenticação básica trazida a você. Espero que todos possam apoiar mais wulin.com ~