Compartilhamento de tecnologia

Pergunta 52 da entrevista de front-end (Você pode me explicar a função das funções hash na segurança de front-end?)

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

Insira a descrição da imagem aqui
As funções hash desempenham um papel vital na segurança front-end, refletida principalmente nos seguintes aspectos:

1. Armazenamento de senha

Quando os usuários criam contas ou alteram senhas em aplicativos front-end, é muito perigoso armazenar diretamente senhas em texto não criptografado. Em vez disso, o front-end usa uma função hash (como SHA-256 ou SHA-512) para converter a senha em um valor hash de comprimento fixo e, em seguida, envia o valor hash ao back-end para armazenamento. Dessa forma, mesmo que o banco de dados vaze, será difícil para o invasor reverter a senha original do valor hash.

2. Verificação de integridade de dados

Funções hash podem ser usadas para garantir que os dados não foram adulterados durante a transmissão. O front end pode calcular o hash dos dados a serem enviados e enviá-los junto com os dados. Depois que o back-end recebe os dados, ele calcula o valor do hash novamente e o compara com o valor do hash enviado pelo front-end. Se os dois corresponderem, os dados não foram modificados durante a transmissão.

3. Evite ataques de repetição

Em algumas solicitações que requerem autenticação, o frontend pode gerar uma string aleatória (chamada de nonce) e enviá-la junto com a solicitação do usuário. Este nonce é hash e armazenado no back-end. Se houver solicitações repetidas posteriormente, o back-end poderá verificar se o nonce foi usado para evitar ataques de repetição.

4. Verifique arquivos e recursos

Frontends podem usar funções hash para verificar a integridade de arquivos ou recursos baixados do servidor. Por exemplo, usando a função Subresource Integrity (SRI), os desenvolvedores podem especificar um valor hash na tag HTML, e o navegador calculará automaticamente o valor hash e o comparará com o valor especificado ao carregar o recurso para garantir que o recurso não tenha sido maliciosamente adulterado.

5. Filtro Bloom

Em alguns casos, o front-end pode usar um Filtro Bloom para determinar rapidamente se um elemento existe em uma coleção. Os filtros Bloom utilizam várias funções hash diferentes para reduzir a taxa de falsos positivos. Embora possam produzir falsos positivos, não produzem falsos negativos, o que é muito útil ao processar grandes quantidades de dados.

6. Firewall de aplicativos da Web (WAF)

As funções hash também são usadas em firewalls de aplicativos da web para detectar e bloquear solicitações maliciosas. Um WAF pode manter uma lista negra contendo hashes de padrões de solicitações maliciosas conhecidos. Quando uma nova solicitação é recebida, o WAF faz o hash da solicitação e, em seguida, verifica se o valor do hash está na lista negra.

7. Proteja informações confidenciais

Ao lidar com informações confidenciais, como números de cartão de crédito ou informações de identificação pessoal, o front-end pode usar uma função hash para criar um hash das informações e, em seguida, usar esse hash para comparação ou como identificador, em vez de usar os dados brutos diretamente. ., aumentando assim a segurança.

para concluir

As funções hash melhoram a segurança dos aplicativos front-end, fornecendo um método de saída unidirecional e fixo, especialmente quando se trata de autenticação de usuário, integridade de dados e proteção de privacidade. No entanto, é importante observar que, embora as funções hash forneçam uma segurança forte, elas não são infalíveis, especialmente para armazenamento de senhas, e são melhor utilizadas em conjunto com um salt para aumentar ainda mais a dificuldade de cracking.