ananiaslitz / facelesslog
灵感来源于日本传说中无脸男,这是一个日志记录库,可以自动隐藏或匿名化日志中的敏感信息,保护用户的隐私。
v0.0.2
2023-09-29 12:41 UTC
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-09-09 14:50:26 UTC
README
灵感来源于日本传说中无脸男,描述了一个没有明显特征的面孔,因此产生了 "facelesslog" 库。它的目的是在记录中隐藏或匿名化敏感信息,符合对用户隐私的当代关注。在一个数据安全至关重要的世界中,这个库提供了一个有用的工具来保护日志中的宝贵信息。
如何使用 "facelesslog" 库
要在项目中安装库,请在终端中运行以下Composer包管理器命令
composer require ananiaslitz/facelesslog
特性
- 灵活性:易于与任何PHP应用集成。
- 可定制配置:支持自定义配置以启用/禁用特定检测器和匿名化器。
- 单例/工厂模式:高效实现以优化资源管理。
- 检测器-匿名化器映射:为特定检测器映射匿名化器以提高效率。
- 单元测试支持:与PHPUnit兼容,确保可靠的稳健测试。
- 错误和异常日志记录:记录错误和异常以简化维护和监控。
- 文档和示例:详细的文档和实用的示例,便于使用。
- 与框架兼容:提供与Laravel和Symfony等流行框架的集成。
配置
以下是如何配置和使用 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
创建自定义检测器和匿名化器
facelesslog 库旨在保持灵活性,允许用户根据其特定需求扩展其功能。要创建自己的检测器和匿名化器,只需实现 DetectorInterface 和 AnonymizerInterface 接口即可。
实现 DetectorInterface
DetectorInterface 是一个简单的接口,需要实现 detect 方法,该方法返回一个布尔值。此方法负责检查消息是否包含您希望检测的特定类型敏感信息。
class CustomDetector implements DetectorInterface { public function detect(string $message): bool { // Lógica para detectar uma informação específica na mensagem } }
实现 AnonymizerInterface
AnonymizerInterface 也是一个直接的接口,需要实现 anonymize 方法。此方法应返回带有匿名化或隐藏敏感信息的消息。
class CustomAnonymizer implements AnonymizerInterface { public function anonymize(string $message): string { // Lógica para anonimizar informações sensíveis na mensagem } }
贡献
欢迎您的贡献!如果您想改进 facelesslog,请随时fork存储库并提交您的pull请求。有关错误、问题和讨论,请使用GitHub问题部分。
许可证
在MIT许可证下分发。有关更多信息,请参阅 LICENSE。