跨站请求伪造(CSRF)是一种利用 Web应用漏洞的 Web 攻击方法。 术语“CSRF”也可以直接指漏洞本身。
当 Web应用存在 CSRF 漏洞时,攻击者可以在未经合法用户明确同意的情况下,诱骗合法用户在易受攻击的网站上调用非预期的操作。 潜在影响包括未经授权的操作,例如修改用户数据、意外删除或更改数据、执行欺诈性交易或在目标应用内启动未经授权的操作。
典型的 CSRF 攻击以以下方式进行:
为了减轻 CSRF 攻击,应用必须验证传入 POST 请求的合法性。 一种被广泛采用的方法是实现被称为“nonce”值(“一次使用的数字”)的令牌。 随机数是一个唯一的、随机生成的标识符,嵌入在合法的 HTTP 表单中,以响应用户请求。 在收到后续 POST 提交后,应用将验证随机数以确认请求的真实性和完整性。
当发送表单以响应合法的 GET 请求时,服务器会包含一个唯一的、不可预测的随机数值。 当应用收到客户端相应的POST请求后,会检查nonce来确认请求的真实性和合法性。
此外, F5 BIG-IP应用安全管理器提供的 Web应用防火墙 (WAF) 等安全解决方案能够有效识别和阻止恶意请求,防止 CSRF 漏洞被利用。