ananiaslitz / facelesslog
Inspirado no Noppera-bō, é uma biblioteca de logging que oculta ou anonimiza automaticamente informações sensíveis nos logs, protegendo a privacidade dos usuários.
Requires
- guzzlehttp/promises: ^2.0
- hyperf/di: ^3.0
- monolog/monolog: ^3.4
- nyholm/psr7: ^1.8
- open-telemetry/api: ^1.0.0beta
- open-telemetry/opentelemetry: ^1.0@beta
- open-telemetry/opentelemetry-logger-monolog: ^0.0.4
- php-http/httplug: ^2.4
- symfony/http-client: ^6.3
Requires (Dev)
- brain/monkey: ^2.6
- phpunit/php-timer: ^6.0
This package is auto-updated.
Last update: 2024-11-09 15:15:52 UTC
README
Inspirado na lenda japonesa do Noppera-bō, que descreve um rosto sem características distintas, surge a biblioteca "facelesslog". Seu propósito é ocultar ou anonimizar informações sensíveis nos registros, alinhando-se às preocupações contemporâneas sobre a privacidade dos usuários. Em um mundo onde a segurança dos dados é essencial, essa biblioteca oferece uma ferramenta útil para proteger informações valiosas em logs.
Como utilizar a biblioteca "facelesslog":
Para instalar a biblioteca em seu projeto, utilize o gerenciador de pacotes Composer executando o seguinte comando no terminal:
composer require ananiaslitz/facelesslog
Características
- Flexibilidade: Fácil de integrar com qualquer aplicação PHP.
- Configuração Customizável: Suporta configuração personalizada para ativar/desativar detectores e anonimizadores específicos.
- Singleton/Factory Pattern: Implementação eficiente para garantir a gestão otimizada de recursos.
- Mapeamento Detector-Anonimizador: Eficiência aprimorada com anonimizadores mapeados para detectores específicos.
- Suporte a Testes Unitários: Compatível com PHPUnit para testes confiáveis e robustos.
- Logging de Erros e Exceções: Registra erros e exceções para manutenção e monitoramento fáceis.
- Documentação e Exemplos: Documentação detalhada e exemplos práticos para facilitar o uso.
- Compatibilidade com Frameworks: Integrações disponíveis para frameworks populares como Laravel e Symfony.
Configuração
Aqui está um exemplo de como você pode configurar e usar o facelesslog:
// Exemplo de uso do FacelessLogger $logger = FacelessLogger::getInstance(); // Adicionar detectores e anonimizadores conforme necessário $logger->addDetector(new EmailDetector(), new EmailAnonymizer()); // ... // Processar uma mensagem $message = "User email is user@example.com"; $anonymizedMessage = $logger->processMessage($message); echo $anonymizedMessage; // Saída será uma versão anonimizada da mensagem
Criação de Detectores e Anonimizadores Customizados
A biblioteca facelesslog foi projetada com flexibilidade em mente, permitindo que os usuários ampliem sua funcionalidade de acordo com suas necessidades específicas. Para criar seus próprios Detectores e Anonimizadores, basta implementar as interfaces DetectorInterface e AnonymizerInterface.
Implementando a DetectorInterface
A DetectorInterface é uma interface simples que requer a implementação do método detect, que retorna um booleano. Este método é responsável por verificar se uma mensagem contém um certo tipo de informação sensível que você deseja detectar.
class CustomDetector implements DetectorInterface { public function detect(string $message): bool { // Lógica para detectar uma informação específica na mensagem } }
Implementando a AnonymizerInterface
A AnonymizerInterface também é uma interface direta que exige a implementação do método anonymize. Este método deve retornar a mensagem com as informações sensíveis anonimizadas ou ocultadas.
class CustomAnonymizer implements AnonymizerInterface { public function anonymize(string $message): string { // Lógica para anonimizar informações sensíveis na mensagem } }
Contribuição
Sua contribuição é bem-vinda! Se você deseja melhorar a facelesslog, sinta-se à vontade para fazer um fork do repositório e enviar suas pull requests. Para bugs, questões e discussões, por favor, use a seção de issues do GitHub.
Licença
Distribuído sob a licença MIT. Veja LICENSE para mais informações.