Web攻击-跨站请求伪造(CSRF)

什么是CSRF攻击

CSRF(Cross-Site Request Forgery,跨站请求伪造)攻击是指攻击者诱导已登录的用户在不知情的情况下执行恶意请求,从而在用户拥有的权限下进行未授权的操作。

CSRF攻击的流程:

  1. 用户登录并在浏览器中保留了某网站的会话(通常是通过cookie)。
  2. 攻击者诱使用户访问一个包含恶意请求的页面(例如通过钓鱼邮件、恶意广告等)。
  3. 该恶意页面会向受害网站发送伪造的请求,浏览器会自动携带用户的cookie,从而在用户的权限下执行该请求。

示例:

假设某银行网站允许用户通过GET请求转账,而没有进行CSRF防护。攻击者构造了如下恶意链接:

<a href="http://bank.com/transfer?amount=1000&to=attacker_account">Click here for a surprise!</a>

当用户点击这个链接时,浏览器会发送一个转账请求,将1000元转到攻击者的账户。由于用户已登录银行网站,浏览器会自动携带用户的会话cookie,银行服务器认为这是一个合法的请求,完成转账操作。

如何防御:

  • 在敏感操作中使用CSRF令牌(token),每次请求时需要验证这个令牌是否有效。
  • 对重要操作使用POST请求而不是GET请求。
  • 检查HTTP Referer头,确保请求来源于合法页面。

通过以上措施,可以有效地降低CSRF攻击的风险。

posted @ 2021-04-13 22:11  Better-HTQ  阅读(0)  评论(0编辑  收藏  举报