安全方法论
一、多层次的安全防护体系,涵盖:
传输安全(HTTPS、签名)。
身份认证与授权(OAuth2、RBAC)。
数据安全(加密、脱敏)。
攻击防护(XSS、SQL注入、CSRF)。
监控与审计(日志、告警、权限审计)。
核心原则:
最小权限:用户只能访问必要资源。
防御纵深:多层防护,避免单点失效。
可追溯性:所有操作留痕,便于审计。
二、安全细节点
安全知识点详细总结
1. 签名与加密
使用 DESService 进行请求签名,确保请求的完整性和真实性。
签名生成方式:signature = DES.Encrypt(sysIdPadded, $"random{random}timestamp{timestamp}")。
请求头包含 appkey、random、timestamp 和 signature,防止请求被篡改。
强调对用户输入进行转义,防止 XSS 和 SQL注入。
使用 HTTPS 协议加密传输数据,防止窃听和篡改。
前端:Cookie 中的敏感信息需加密存储(如 AES)。
后端:URL 传输的敏感信息(如身份证号)需加密(如 RSA 或 AES)。
2. 权限控制
请求必须携带 appkey 和签名,确保调用方身份合法。
统一权限管理平台 = 认证中心 + 权限管理(功能权限 + 数据权限) + 权限审计。
使用 OAuth2 授权码模式 实现单点登录(SSO)。
页面权限:检查用户是否登录,是否有访问权限。
接口权限:
对内接口需校验 clientIP、appid、LoginName。
对外接口需校验 商户证书 或 签名。
数据权限:控制用户只能访问授权范围内的数据(如 A用户不能查询B用户的数据)。
3. 输入验证
参数校验:
检查参数是否为空、类型是否正确、长度是否合理。
枚举值校验(如 性别只能是男/女)。
防XSS:对 <, >, ', " 等特殊字符进行转义。
防SQL注入:使用参数化查询或 PreparedStatement,避免拼接 SQL。
敏感词过滤:使用本地词库或第三方接口校验用户输入(如 政治敏感词)。
正则表达式:校验手机号、邮箱等格式。
4. 日志记录与监控
记录请求的 URL、参数、请求头、响应数据、响应时间,便于排查问题。
审计日志:
记录关键操作(如 权限变更、敏感数据访问)。
日志需保存 至少1年,并脱敏敏感信息(如 密码、银行卡号)。
异常监控:
对异常请求(如 高频调用、非法参数)进行告警。
5. 会话管理
使用 随机数(nonce) + 时间戳(timestamp) 防止重放攻击。
会话超时:用户长时间无操作时自动退出登录。
二次认证:高敏感操作(如 支付、修改密码)需短信验证码或生物识别。
6. 数据保护
敏感信息脱敏:
前端展示时掩码处理(如 手机号:138****1234)。
日志中禁止明文存储敏感信息(如 密码、CVV)。
数据库加密:
敏感字段(如 密码、银行卡号)使用 AES 或 SHA-256 加密存储。
禁止在配置文件中明文存储密钥(如 数据库密码、API Key)。
7. 接口安全
接口调用需签名(signature),防止参数被篡改。
防CSRF:关键操作接口需校验 Anti-CSRF Token。
限流:对高频调用(如 同一IP/用户短时间多次请求)进行限制。
8. 安全审计
权限审计:
定期检查用户权限是否合理(如 离职员工权限未回收)。
记录权限变更操作(如 谁在什么时间修改了权限)。
操作审计:
记录敏感操作(如 数据导出、退款),确保可追溯。
9. 防止篡改
请求参数签名(signature)确保数据完整性。
防篡改机制:
关键数据(如 订单金额、用户ID)需签名校验。
使用 HMAC-SHA256 替代 MD5 等弱哈希算法。
10. 安全组件
WAF(Web应用防火墙):部署 门神WAF 防御 SQL注入、XSS 等攻击。
入侵检测:使用 洋葱 监控异常行为(如 暴力破解、恶意爬虫)

浙公网安备 33010602011771号