}
})
Token安全实践:
• 使用JWT时应选择强算法(如HS256),避免将敏感信息放入payload
• 设置适当的过期时间(通常2-4小时)
• 实现token自动刷新机制,减少长期有效的token
• 关键操作(如支付、修改密码)应要求二次认证
会话保护:
• 检测异常登录(新设备、异地登录)
• 提供用户可见的会话管理(如"我的设备"列表)
• 实现一键注销所有会话的功能
三、数据传输与存储安全
3.1 安全通信协议
TLS**实践:
• 使用TLS 1.2或更高版本
• 配置强加密套件,禁用弱算法(如RC4、DES)
• 定期更新服务器证书,使用受信任的CA机构
• 启用HSTS(HTTP Strict Transport Security)
证书钉扎(Certificate Pinning):
虽然小程序环境不完全支持传统证书钉扎,但可以通过以下方式增强验证:
• 在小程序后台固定接受的证书/公钥
• 后端API部署双向TLS认证(mTLS)
• 对关键接口实施请求签名
3.2 数据加密方案
敏感数据加密传输:
• 对特别敏感的数据(如支付信息),在应用层增加加密
• 使用行业标准算法(如AES-256-GCM、RSA-OAEP)
• 密钥应定期轮换,避免长期使用同一密钥
客户端安全存储:
• 区分数据敏感等级,采用不同存储策略
• 使用小程序提供的安全存储API(如微信的setStorageSync)
• 对本地存储的敏感数据实施加密
• 及时清理不再需要的临时数据
javascript
复制
// 安全存储示例(结合加密)
const CryptoJS = require('./crypto-js')