ananiaslitz/facelesslog

灵感来源于日本传说中无脸男,这是一个日志记录库,可以自动隐藏或匿名化日志中的敏感信息,保护用户的隐私。

v0.0.2 2023-09-29 12:41 UTC

This package is auto-updated.

Last update: 2024-09-09 14:50:26 UTC


README

License: MIT PHP Composer GitHub tag (latest by date) codecov

Noppera-bo

灵感来源于日本传说中无脸男,描述了一个没有明显特征的面孔,因此产生了 "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。