outsidaz/laravel-data-anonymization

v1.1.5 2024-06-26 04:29 UTC

This package is auto-updated.

Last update: 2024-09-26 05:04:34 UTC


README

此 Laravel 扩展包简化了数据匿名化过程,帮助组织保护隐私,遵守法规,降低数据泄露风险,并实现安全的数据共享。

  1. 保护隐私:数据包含个人敏感信息,如姓名、地址、电子邮件、电话号码以及其他可识别个人身份的信息(PII)。数据匿名化通过从数据集中移除或隐藏PII来帮助保护个人隐私。

  2. 遵守法规:许多国家和行业都有规定,要求组织通过匿名化数据来保护个人隐私。例如,欧盟的通用数据保护条例(GDPR)要求组织通过匿名化数据来保护个人隐私。

  3. 降低数据泄露风险:数据泄露可能对组织和个人造成严重后果,包括经济损失、声誉损害和身份盗窃。通过匿名化数据,组织可以降低数据泄露风险,并最大限度地减少任何发生的数据泄露的影响。

  4. 实现数据共享:匿名化数据可以在不违反个人隐私的情况下与其他组织或研究人员共享。这有助于促进医疗保健、金融和社会科学等领域的协作和创新。

安装

您可以通过 composer 安装此包

composer require outsidaz/laravel-data-anonymization

您可以使用以下命令发布配置文件

php artisan vendor:publish --tag="laravel-data-anonymization-config"

这是已发布配置文件的内容

return [
    'locale' => 'en_US',
    'chunk_size' => 1000,
    'models_path' => app_path('Models'),
    'models_namespace' => '\\App\\Models',
]

使用方法

在包含敏感数据的任何模型中,使用 Anonymizable 特性并实现 anonymizableAttributes 方法

<?php
class User extends Authenticatable
{
    use Anonymizable;
    
    <...>

    public function anonymizableAttributes(Generator $faker): array
    {
        return [
            'email' => $this->id . '@custom.dev',
            'password' => 'secret',
            'firstname' => $faker->firstName,
            'surname' => $faker->lastName,
            'phone' => $faker->e164PhoneNumber,
            'position' => $faker->jobTitle,
            'token' => null,
        ];
    }
    
    // optional
    public function anonymizableCondition(): Builder
    {
        return self::withTrashed()->where('something', '=>', '...');
    }
}

使用命令执行匿名化

php artisan db:anonymize

或对特定模型进行匿名化

php artisan db:anonymize --model=\\App\User --model=\\App\\Profile

许可证

MIT 许可证(MIT)。请参阅 许可证文件 了解更多信息。