17 Commits
Author SHA1 Message Date
qian 72fb0318f5 fix(permissions):修复租户端的权限漏洞 2026-09-05 00:31:14 +08:00
qian 9d61abda86 fix(permissions):修复权限相关问题 2026-09-03 00:46:57 +08:00
qian e800cd4b05 fix(setting):移除安全配置中的无用配置 2026-09-01 21:34:45 +08:00
chengqian 0372d4fff5 feat(role):新增用户权限功能 2026-09-01 15:47:10 +08:00
martin 92c2cc033b refactor: deduplicate task and security logic 2026-07-26 14:07:53 +08:00
martin a6ed67d841 fix: 完成 P3 细节优化项
依据《代码分析结果.md》P3 章节,逐条修复 20 项细节问题:

正确性修复:
- P3-1 锁定剩余分钟改用 math.Ceil,避免「0.9 分钟」显示为「0 分钟」
- P3-12 移除 CheckAndUpgradeLevel 中恒真的 hasUpdate 标志
- P3-14 移除 CheckTrialExpiry 中恒真表达式(count > 0 || true)调试残留,改用 RowsAffected
- P3-2 成员不存在统一返回 NewNotFoundError(404),与其它方法语义一致

安全加固:
- P3-6 X-Request-Id 加格式校验 ^[A-Za-z0-9-]{1,64}$,防日志注入
- P3-7 新增公共 EscapeLikePattern,转义 admin LIKE 搜索的 %/_ 通配符
- P3-8 Encrypt 输出加 v1: 版本前缀,Decrypt 兼容无前缀历史密文
- P3-9 turnstile 响应体读取加 64KB 上限,防内存耗尽
- P3-11 backup codes 熵由 48-bit 提升到 64-bit
- P3-15 recordAudit 对 multipart/二进制体跳过 Unmarshal 与原文落库
- P3-17 错误日志按 Content-Type 跳过 multipart/二进制体读取
- P3-16 HandleRealtime 加 panic recover 与连接生命周期日志

可维护性/一致性:
- P3-3 oauth.go 时间格式统一为 time.RFC3339
- P3-5 MsgSuccess 统一为 ok,response.go 改用常量引用
- P3-4 错误码分段策略加注释,说明空洞与跳跃的成因
- P3-13 ModelMultiplier 占位语义加注释(计费公式设计位 + 快照列)
- P3-19 抽取 registerCronJobs,主启动流程清爽

重构:
- P3-18 删除死代码 BuildBillingSummary/SummaryParams(仅测试引用),保留共用 helper
- P3-20 抽取 relay.InvalidateMemberModelScopeCache 单一失效入口,
  消除三处 member_model 前缀字面量重复(原为有意跨包失效,原建议改名会破坏)

经核实保留 + 文档化:
- P3-10 TOTP 暂保留 SHA-1:totp.Validate 硬编码 SHA-1 且存储不保存算法元信息,
  直接切 SHA-256 会导致校验恒失败,需配合 schema 改动,超出 P3 范围
2026-07-26 12:16:33 +08:00
qian 9374c64bad feat:用户多次输错密码被锁后可以由管理员解锁 2026-07-24 00:18:29 +08:00
chengqian 527a59d557 fix: 修复代码分析报告中的低优先级问题
- notification.go: containsAny 改用 strings.Contains 简化
- docs/openapi.go: buildOpenAPISpec 透传 ctx,消除 nil context
- batch_writer.go: 缓冲区溢出丢弃记录时增加计数与告警日志
- billing/wallet.go: 删除无调用方的死代码 CheckBalance
- tenant/open_platform.go: WebhookConfigUpdate 校验受影响行数
- tenant/member_import.go: 后台导入改用 WithoutCancel 保留 request_id
- session.go: GetSessionByID/RevokeSession 增加 user_type 隔离,
  防止 admin/tenant 跨控制台按 ID 吊销他人会话
2026-07-22 18:11:02 +08:00
22ee0aa112 修复安全问题 (#9)
* fix:修复权限问题

* fix:修复项目key类型错误问题

* fix:修复rbac权限问题

* fix:修复api密钥未及时失效的问题

* improve:优化渠道调度稳定性

* improve:优化路由

* fix:修复项目预算控制缺陷

* fix:加强限流等安全措施

* feat:添加限流相关字段的前端展示及接口字段

* improve:优化注册时密码要求,只需要字母和数字即可

* feat(setting):添加注册限流设置

* improve:优化前端数字类型转换

* chore:rbac权限放行

---------

Co-authored-by: chengqian <wuchengqian@kkidc.com>
Co-authored-by: qian <wuchengqian5@163.com>
2026-06-23 22:47:54 +08:00
chengqian a1f637fb2a feat:添加用户协议文档管理功能 2026-06-11 17:49:55 +08:00
chengqian fa70d8790c fix(auth):修复管理员权限问题 2026-06-02 18:33:48 +08:00
qian 508146fde2 feat(model):修复用户会话问题 2026-05-29 22:53:29 +08:00
qian 1a4b103371 improve(test):单元测试结束后删除数据 2026-05-29 07:50:09 +08:00
qian b87a0c5a8f fix( db):修复db 查询 结果为空 2026-05-28 08:35:23 +08:00
chengqian 3cdb76c8c0 refactor(middle): Context 函数零散 2026-05-26 14:16:03 +08:00
chengqian 59fa10e14a fix:修复数据库找不到记录产生报错的异常情况 2026-05-12 19:33:31 +08:00
qian 3405280224 后端功能首次提交 2026-05-10 12:21:27 +08:00