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 拒绝
AUTH bcrypt 密码存储 64hex 有状态 Token 8h TTL 自动过期 revoked_at 可吊销
02 / SENSITIVE MASKING

Sensitive,脱敏单一真源。

所有敏感字段脱敏逻辑集中在一个类,避免各处重复、口径不一。

核心方法

// 是否有权限查看原始值
canViewRaw($field, $user)

// 按需脱敏单个字段
maskIfNeeded($field, $value)

// 批量脱敏数组
maskArray($data, $masked)

✓ MASK = '******'

脱敏场景

// 手机号
138****5678

// 邮箱
a***@example.com

// 密钥 / 密钥对
sk-******-******

✓ 输出层统一脱敏
字段类型脱敏规则示例
手机号保留前 3 后 4138****5678
邮箱保留首字母 + 域名a***@example.com
密钥 / Token整体遮蔽******
身份证号保留前 3 后 4110***********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 编码

动态输出统一转义,防止跨站脚本注入。

安全基线已内建,专注业务即可。

认证、鉴权、脱敏、锁定、审计——不用重复建设。