在Android开发中,防止跨站请求伪造(CSRF)是保障API安全的关键步骤。以下是常见防御方案及实现建议:
1. CSRF Token机制
🛡️ 在请求头或参数中携带一次性随机token,服务端校验token有效性
🔗 示例代码:
val token = generateSecureToken()
// 通过SharedPreferences存储token
// 请求时添加: headers["X-Csrf-Token"] = token
2. Referer头验证
🛡️ 校验请求来源域名,阻止非预期站点的请求
⚠️ 注意:移动端可能因浏览器兼容性导致Referer头丢失
🔗 配置参考:
// 添加OkHttp拦截器进行Referer验证
3. SameSite属性设置
🛡️ 在Cookie中设置SameSite=Strict
或Lax
🔗 详细说明:Android网络安全最佳实践
4. Double Submit Cookie
🛡️ 客户端与服务端存储相同token,通过对比验证请求合法性
🔑 建议使用加密算法生成token:
val token = Base64.encodeToString(secureRandomBytes, Base64.NO_WRAP)
需要进一步了解安全防护体系可访问 安全开发专题 查看完整架构图。