更新时间:2022-08-19 来源:黑马程序员 浏览量:
CSRF(Cross-Site Request Forgery)为跨站请求伪造,它是一种针对Web应用程序的攻击方式,攻击者利用CSRF漏洞伪装成受信任用户的请求访问受攻击的网站。在CSRF攻击中,当用户访问一个信任网站时,在没有退出会话的情况下,攻击者诱使用户点击恶意网站,恶意网站会返回攻击代码,同时要求访问信任网站,这样用户就在不知情的情况下将恶意网站的代码发送到了信任网站,其过程如图5-3所示。
图5-3 CSRF攻击过程
CSRF的攻击过程与XSS攻击过程类似,不同之处在于,XSS是盗取用户信息伪装成用户执行恶意活动,而CSRF则是通过用户向网站发起攻击。如果将XSS攻击过程比喻为小偷偷取了用户的身份证去办理非法业务,那CSRF攻击则是骗子“劫持”了用户,让用户自己去办理非法业务,以达到自己的目的。
CSRF漏洞产生的原因主要是对用户请求缺少更安全的验证机制。防范CSRF漏洞的主要思路就是加强后台对用户及用户请求的验证,而不能仅限于Cookie的识别。例如,使用HTTP请求头中的Referer对网站来源进行身份校验,添加基于当前用户身份的token验证,在请求数据提交前,使用验证码填写方式验证用户来源,防止未授权的恶意操作。