bcrowe / cakephp-encrypted-type
CakePHP 4 插件,提供应用程序级别的数据库加密。
2.0.1
2020-12-27 13:48 UTC
Requires
- php: >=7.2
- cakephp/cakephp: ^4.0
Requires (Dev)
- phpunit/phpunit: ^8.0
- scrutinizer/ocular: ~1.1
This package is not auto-updated.
Last update: 2024-09-15 03:49:52 UTC
README
此插件提供 CakePHP 4 加密数据库类型,用于应用程序级别加密。在使用此插件之前,您可能需要在全盘加密、数据库级别加密和应用程序级别加密之间权衡选择。此插件源于 Amazon Aurora 在 2017 年 3 月 28 日之前不支持跨区域复制加密。
安装
通过 Composer
$ composer require bcrowe/cakephp-encrypted-type
在应用程序的 bootstrap.php
文件中加载插件,然后定义类型映射
Plugin::load('BryanCrowe/EncryptedType'); Type::map('encrypted', 'BryanCrowe\EncryptedType\Database\Type\EncryptedType');
确保在 config/app.php
文件中有一个 Encryption.key
配置值
[ 'Encryption' => [ 'key' => env('ENCRYPTION_KEY', 'defaultencryptionkeygoesrighthereyaythisisfun'), ], ]
使用方法
注意:此数据库类型在省略列或显式设置列的 null
值时,期望列是可空的。
对于需要加密的列,使用 BLOB
类型,例如
CREATE TABLE `users` ( `id` char(36) NOT NULL DEFAULT '', `first_name` blob, `last_name` blob, `email` blob, `created` datetime DEFAULT NULL, `modified` datetime DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
<?php namespace App\Model\Table; use Cake\Database\Schema\TableSchema; use Cake\ORM\Table; class UsersTable extends Table { protected function _initializeSchema(TableSchema $schema) { $schema->columnType('first_name', 'encrypted'); $schema->columnType('last_name', 'encrypted'); $schema->columnType('email', 'encrypted'); return $schema; } }
变更日志
请参阅 CHANGELOG 了解最近更改的详细信息。
测试
$ composer test
贡献
请参阅 CONTRIBUTING 和 CONDUCT 了解详细信息。
安全
如果您发现任何安全相关的问题,请通过电子邮件 bryan@bryan-crowe.com 而不是使用问题跟踪器。
致谢
许可
MIT 许可证 (MIT)。请参阅 许可文件 了解更多信息。