- Conceitos básicos (método de autenticação, criptografia / descriptografia, HTTPS)
- Como funciona o JWT
- JWT integrado com Node.js
Método de autenticação:
Vantagens do JWT : fácil de expandir, suporte para dispositivos móveis, chamadas entre aplicativos, segurança e rico em transporte de informações.
Desvantagens: processamento de atualização e expiração, carga útil (carga útil) não é fácil de ser muito grande, man-in-the - ataque médio
Vantagens da sessão / cookie : Mais fácil de expandir, simples
Desvantagens: Baixa segurança, baixo desempenho, armazenamento de servidor, difícil de sincronizar sessões com vários servidores (requer serviços como redis) e difícil de plataforma cruzada.- oAuth 2.0 (login de terceiros, como WeChat, github scan QR code login)
Vantagens: permissões abertas, seguras, simples e específicas
Desvantagens: necessidade de aumentar o servidor de autorização e aumentar as solicitações de rede
O que é JWT
O nome completo do JWT é JSON Web Token. Um JWT consiste em três partes: Cabeçalho, Carga útil, Assinatura.
- O cabeçalho
especifica principalmente o método de criptografia usado pelo token e o tipo do token.{ "alg":"HS256", "typ":"JWT" }
- A carga útil consiste
principalmente em algumas informações do usuário contidas no token, como: nome do usuário, prazo de validade, etc.{ "sub":"2021-01-01", "name":"zyy", "admin":true }
- A assinatura
é o valor base64 do cabeçalho + o valor base64 da carga útil + a string gerada pelo segredo
e , em seguida, execute a criptografia especificada neste e, finalmente, obtenha a assinatura
HMACSHA256( base64UrlEncode(header) + "."+ base64UrlEncode(payload), secret )
Recursos JWT
- Anti-CSRF (principalmente solicitações forjadas, com cookies)
- Adequado para aplicativos móveis (refere-se principalmente ao aplicativo, porque os cookies precisam ser armazenados no navegador)
- Dados sem estado, codificados
verificação online jwt: https://jwt.io/
Algoritmo / Criptografia
Algoritmo:
A instrução no algoritmo descreve um cálculo, quando executado, pode partir de um estado inicial e uma entrada inicial (pode estar vazio), após uma série de 有限而清晰定义的状态
saída final e parar em um estado final. (Semelhante à função)
Criptografia:
O processo básico de criptografia de dados é processar o arquivo de texto simples original ou os dados de acordo com um determinado algoritmo para torná-lo um pedaço de código ilegível, geralmente chamado de "texto cifrado". Através desta abordagem, o objetivo de proteger os dados de serem roubados e lidos por pessoas não autorizadas é alcançado.
HTTPS
O protocolo de transferência segura HTTPS
HTTPS (HyperText Transfer Protocol Secure) é freqüentemente referido como HTTP sobre TLS, HTTP sobre SSL ou HTTP Seguro. É um protocolo de transmissão para comunicação segura por meio de uma rede de computadores.
Design de segurança API
- Criptografia do canal de comunicação: use HTTPS
- Criptografia de dados de comunicação: texto cifrado + dados de chave criptografada
- Estratégia de segurança de comunicação: camada intermediária de autorização, número de tentativas, estratégia de expiração. . .