我对反射型 XSS 的理解是
...当 Web 应用程序容易受到此类攻击时,它会将通过请求发送的未经验证的输入传递回客户端... [1]
假设我的 webapp 在服务器上有一个 CSRF 验证,用于检查所有请求的有效CSRF 令牌。如果它收到任何不包含 CSRF 令牌的请求,它将给出正确的错误(这个错误是一个简单的字符串,它没有攻击向量)。为了完整起见,我们还假设我有适当的安全措施来防止 CSRF 令牌被盗或被猜测。
因此可以安全地假设CSRF 令牌也可以防止反射型 XSS 攻击,因为这两个都是真的:
- 如果 CSRF 令牌不存在,服务器不会反映任何内容。
- 攻击者无法拥有或猜测 CSRF 令牌。