dereuromark/cakephp-expose
Composer 安装命令:
composer require dereuromark/cakephp-expose
包简介
CakePHP Expose Plugin to expose entities through UUIDs instead of AIIDs
README 文档
README
Exposes UUIDs as public identifiers for your entities instead of numeric AIID (Auto Increment ID) primary keys.
This branch is for use with CakePHP 5.1+. For details see version map.
Key Goals
Cloaking/Obfuscation
- True randomness, so you cannot determine order or count of records per time-frame.
Security
- Mass assignment and marshalling does not allow setting this exposed field - it are hidden by default just as the primary key.
Robustness
- Must work with also more complex queries and use cases, including the atomic
updateAll(),deleteAll(). - Speed should be similar to default approach.
Simplicity
- Code changes from AIID exposure to UUID lookup should be minimal for all public endpoints.
- The default shortener provided makes the UUIDs also only 22 chars long concise strings.
Why AIID and UUID as combination?
See Motivation for details.
Demo
See sandbox examples.
Installation
You can install this plugin into your CakePHP application using Composer.
The recommended way to install is:
composer require dereuromark/cakephp-expose
Then load the plugin with the following command:
bin/cake plugin load Expose
Usage
See Docs for details.
Quick Start for adding to existing records
Faster than the speed of light:
- Add the behavior and run
bin/cake expose add_field PluginName.ModelName {MigrationName}to generate a migration for adding the field. - Execute the migration and then populate existing records using
bin/cake expose populate_field PluginName.ModelName - Re-run
bin/cake expose add_field PluginName.ModelName {MigrationName}to get a non-nullable field migration for your new field. - After also executing that migration all new records will automatically have their exposed field stored as well.
You are done and can now adjust your public actions to query by exposed field only and hide the primary key completely.
Using Superimpose behavior on top of Expose means that you actually might not even have to modify any code.
Should work out of the box.
More migration tips in Migrating section.
dereuromark/cakephp-expose 适用场景与选型建议
dereuromark/cakephp-expose 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 34.51k 次下载、GitHub Stars 达 9, 最近一次更新时间为 2020 年 03 月 05 日, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「security」 「cakephp」 「uuid」 「expose」 「hashids」 「obfuscate」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 dereuromark/cakephp-expose 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 dereuromark/cakephp-expose 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 dereuromark/cakephp-expose 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
CakePHP 4.x AdminLTE Theme.
Provide a way to secure accesses to all routes of an symfony application.
DrUUID RFC 4122 library for PHP
Trait to generate uuid when creating models
It's a barebone security class written on PHP
Email Toolkit Plugin for CakePHP
统计信息
- 总下载量: 34.51k
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 9
- 点击次数: 12
- 依赖项目数: 1
- 推荐数: 1
其他信息
- 授权协议: MIT
- 更新时间: 2020-03-05