maxlcoder / laravel-desensitization
敏感信息处理
dev-main
2024-07-18 08:46 UTC
Requires
- php: ^7.3|^8.0
- illuminate/support: ^7.0|^8.0|^9.0|^10.0
Requires (Dev)
- orchestra/testbench: ^6.0
- phpunit/phpunit: ^8.5|^9.0
This package is auto-updated.
Last update: 2024-09-18 09:09:39 UTC
README
针对 API 的敏感数据处理的中间件,配置形式,脱敏函数和脱敏方法均可自定义
安装
您可以通过 composer 安装此包
composer require maxlcoder/laravel-desensitization
配置
php artisan vendor:publish --provider="Maxlcoder\LaravelDesensitization\LaravelDesensitizationServiceProvider"
- functions: 用于脱敏的全局辅助函数,例如 'mobile' => 'desensitiseMobile',使用全局辅助函数 desensitiseMobile 对 uris 中配置的 type 为 mobile 类型的 key 进行脱敏
- class: 全局自定义脱敏类,name 表示类的全路径,这里只能填字符串,functions 表示类中脱敏类型对应的脱敏方法
- 优先使用 functions 全局辅助函数,当全局辅助函数未指定时,才使用 class。如果两者均未配置,则不进行脱敏,但会有错误日志提示
- uris: 全局需要进行脱敏的接口,以及接口返回中需要脱敏的字段名和脱敏类型,系统会对返回的数据结构进行解析,并进行迭代脱敏,其中数组 * 表示返回的数据是数组
[ 'functions' => [ 'mobile' => 'desensitise_mobile', 'name' => 'desensitise_name' ], 'class' => [ 'name' => 'App\Lib\Desensitization', 'functions' => [ 'mobile' => 'desensitiseMobile', ], ], 'uris' => [ 'admin/admins' => [ ['key' => 'data.data.*.mobile', 'type' => 'mobile'], ['key' => 'data.data.*.name', 'type' => 'name'], ], ], ];
用法
在 Kerner.php
中引入中间件
protected $routeMiddleware = [ ... 'desensitization' => \Maxlcoder\LaravelDesensitization\Http\Middleware\Desensitization::class, ];
测试
composer test
变更日志
有关最近更改的更多信息,请参阅 变更日志
贡献
有关详细信息,请参阅 贡献指南
安全
如果您发现任何安全相关的问题,请通过电子邮件 liurenlin77@gmail.com 而不是使用问题跟踪器来报告。
鸣谢
许可
MIT 许可证 (MIT)。有关更多信息,请参阅 许可文件
Laravel 包模板
此包是使用 Laravel 包模板 生成的。