SOS-RS / frontend

Auxílio RS: Projetos de Resposta a Emergências por Chuvas e Alagamentos
https://sos-rs.com
MIT License
598 stars 332 forks source link

[SECURITY] Resguardar dados que exponham conteúdo sensível para Bots no Front #222

Open felippe-regazio opened 3 months ago

felippe-regazio commented 3 months ago

Descrição

Chaves PIX em formato e-mail não devem carregar totalmente reveladas por security concerns. scrappers, spammers, bots genericos em geral ou scanners maliciosos podem se aproveitar dos endereços expostos. (Este mesmo problema pode ser levado em conta para qualquer dado sensível passível de assédio e/ou sniffing automatico como email, cpf, telefones, etc). Isso tbm evita que esses emails sejam indexados em listas ou engines em geral e disponibilizados para busca direta.

Prioridade

Solução proposta

Pode ajudar na segurança caso a string em questão seja truncada para nao apresentar a chave pix inteira, ao invés de:

[icon] Chave Pix: meuemailconfidencial@gmail.com [copiar]

Podemos ter

[icon] Chave Pix: *********@gmail.com [revelar] [copiar]

O truncate pode ser feito de maneira generica para qualquer tipo de dado com a seguinte função:

function partialHiddenStr(str, char = '*') {
     if (!str || typeof str !== 'string') {
         return '';
     }

     if (str.length === 1) {
         return char;
     }

     const middle = str.length / 2;

     return char.repeat(middle) + str.substring(middle);
}

A função copiar continua copiando o dado completo. Essa é apenas uma sugestão, pode ser que hajam outros métodos de proteger a apresentação desses dados.

Ambiente

All

Evidência

Captura de tela de 2024-05-16 23-18-28

HbLuca commented 3 months ago

Correlacionado a: https://github.com/SOS-RS/backend/issues/114 https://github.com/SOS-RS/frontend/pull/124 https://github.com/SOS-RS/frontend/issues/182 https://github.com/SOS-RS/frontend/issues/188 https://github.com/SOS-RS/frontend/issues/191