SECURITY BASELINE
安全能力开箱即用。
把每个项目都要重复建设的安全能力,直接沉淀在 tphelp——bcrypt 密码、sha256 Token 指纹、会话三件套、Sensitive 脱敏真源。
7中间件层
3会话三件套
8hToken TTL
1脱敏真源
01 / AUTHENTICATION
AdminAuth,sha256 指纹比对。
Token 原文不落库,只存 sha256 指纹,比对 login_log.token_hash。
1
Token 生成
登录成功签发 64hex 随机 Token,返回给客户端。
生成 64hexrandom_bytes
→
sha256 指纹只存 token_hash
token 原文 → 客户端
sha256(token) → login_log.token_hash
2
请求鉴权
每次请求携带 Token,中间件解析并比对指纹。
请求携带 tokenAuthorization 头
→
比对指纹sha256 匹配
匹配 → 注入 appUser / isSuper
不匹配 → 401 拒绝
02 / SENSITIVE MASKING
Sensitive,脱敏单一真源。
所有敏感字段脱敏逻辑集中在一个类,避免各处重复、口径不一。
核心方法
// 是否有权限查看原始值 canViewRaw($field, $user) // 按需脱敏单个字段 maskIfNeeded($field, $value) // 批量脱敏数组 maskArray($data, $masked) ✓ MASK = '******'
脱敏场景
// 手机号 138****5678 // 邮箱 a***@example.com // 密钥 / 密钥对 sk-******-****** ✓ 输出层统一脱敏
| 字段类型 | 脱敏规则 | 示例 |
|---|---|---|
| 手机号 | 保留前 3 后 4 | 138****5678 |
| 邮箱 | 保留首字母 + 域名 | a***@example.com |
| 密钥 / Token | 整体遮蔽 | ****** |
| 身份证号 | 保留前 3 后 4 | 110***********1234 |
03 / SESSION SECURITY
会话三件套,从签到处可亡。
Token 指纹存储、主动吊销、改密清场,三位一体保障会话安全。
01
token_hash 指纹
原文不落库,只存 sha256 指纹。即使数据库泄露,也无法还原 Token。
02
revoked_at 主动作废
管理员可随时吊销某账号的全部或单个 Token,立即失效。
03
改密清场
账号修改密码后,自动吊销该账号所有旧 Token,强制重新登录。
04 / LOCK & RATE LIMIT
登录锁定与频率限制。
账号级、全局级双重锁定,接口级频率限制,防止暴力破解与恶意调用。
01
账号锁定 login_lock
单账号失败计数,达到阈值锁定指定时长,防止针对特定账号的爆破。
02
全局锁定 login_lock_global
IP 级 / 全局级锁定,防止单 IP 撞库、分布式爆破。
03
安全规则 security_rule
锁定阈值、密码强度等策略可配置,无需改代码即可调整安全参数。
04
请求限制 request_limit
按 key(IP / account)限流,滑动窗口计数,防止接口滥用。
05
CSRF 防护
接口与表单双层校验,防止跨站请求伪造。
06
XSS 编码
动态输出统一转义,防止跨站脚本注入。