flysmog.pages.dev

Como evitar vazamento de CPF em mensagens de erro

Evitar o vazamento de CPF em mensagens de erro é essencial para garantir a segurança e privacidade dos dados dos usuários. Este método é o mais eficaz porque combina validação rigorosa, mascaramento automático e tratamento de exceções centralizado, eliminando qualquer possibilidade de exposição acidental.

Pré-requisitos

Implementar validação e mascaramento de CPF

Antes de processar qualquer CPF, valide o formato e mascar o valor para evitar exposição. Use expressões regulares ou bibliotecas específicas para validar o CPF e substitua os dígitos por asteriscos, exceto os dois últimos.

import re

def validar_e_mascarar_cpf(cpf):
    # Validação do formato do CPF
    if not re.match(r'^\d{3}\.\d{3}\.\d{3}-\d{2}$', cpf):
        return None
    # Mascaramento do CPF
    return cpf[:0] + '***.***.***-' + cpf[-2:]

Tratar exceções sem expor dados sensíveis

Configure o tratamento de exceções para evitar que CPFs apareçam em mensagens de erro. Use logs centralizados e mensagens genéricas para o usuário.

def processar_cpf(cpf):
    try:
        cpf_mascarado = validar_e_mascarar_cpf(cpf)
        if not cpf_mascarado:
            raise ValueError("CPF inválido")
        # Processamento do CPF...
        return cpf_mascarado
    except Exception as e:
        # Log do erro sem expor o CPF
        logger.error(f"Erro ao processar CPF: {str(e)}")
        return "Ocorreu um erro ao processar o CPF. Tente novamente."

Exemplo Prático

CPF de Entrada CPF Mascarado Mensagem de Erro (se inválido)
123.456.789-10 ***.***.***-10 N/A
12345678910 N/A CPF inválido
111.111.111-11 ***.***.***-11 N/A

Conclusão

Com este método, você garante que nenhum CPF seja exposto em mensagens de erro, protegendo a privacidade dos usuários e cumprindo com as melhores práticas de segurança de dados.