双重 Cookie 验证 (Double Submit Cookie) 是一种用于防御 跨站请求伪造 (CSRF, Cross-Site Request Forgery) 攻击的常用策略。 它的核心思想是:利用“同源策略”让攻击者无法读取 Cookie 的特性,要求请求中必须包含一个与 Cookie 值相匹配的参数。 以下是关于该策略的详细解析: --- 1. 为什么要用它?(背景) 在 CSRF 攻击中,攻击者诱导受害者访问恶意网站,恶意网站会向受害者的目标网站(如银行)发送请求。因为浏览器会自动携带目标网站的 Cookie(包含会话 Session ID),服务器会误以为这是用户本人的操作。 传统的防御方法(如 Synchronizer Token Pattern)需要在服务器端(Session 中)存储一个随机 Token 来验证。但在分布式系统、微服务或无状态(Stateless)架构中,服务器端存储 Session 比较麻烦(需要共享 Session 存储)。 Double Submit Cookie 的最大优势在于:服务器不需要存储 Token,它是“无状态”的。 -...