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.
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:]
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."
| 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 |
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.