[点晴永久免费OA]认识CSRF攻击以及如何防御CSRF攻击
当前位置:点晴教程→点晴OA办公管理信息系统
→『 经验分享&问题答疑 』
1、CSRF的攻击原理 用户登录某网站后,用户的一个正常的请求会将用户的sessionId保存到浏览器的cookie,这时候如果用户在浏览器中打来另一个tab页,此时这个tab页也是可以获得浏览器的cookie,攻击者就可以利用这个cookie信息进行攻击。 2、CSRF的攻击的流程 CSRF攻击是用户登录了信任的网站,却被攻击者冒充用户的身份向网站发出了请求。如下是CSRF的攻击的流程:
(1)用户A输入了自己的银行账户和密码,然后保持了登录的状态。 (2)假设某银行网站可以支持GET请求的方式发起转账操作,转账请求的url如下:
其中accountName表示用户的账户,这个请求只有在用户登录成功之后才可以被正常执行。 (3)攻击者发送了一封很具有吸引力的邮件给用户A,假设邮件中有一张图片,图片的连接地址是:
其中这个accountName=10001是攻击者自己的银行账户。 (4)如果用户A登录的银行网站的信息还有效,然后用户A在浏览器的另一个tab页打开了邮件并且点击了邮件中的这个图片,这时攻击着的转账请求到银行服务器上会银行服务器正常的处理,因为这个请求携带了正确cookie的信息,这样用户的钱就被盗了。 3、常见的CSRF的攻击方式 攻击者会精心构造一个请求的链接、图片或表单,并想方设法让受害者去触发它,常见的攻击方式如下所示: (1)伪造GET请求:在网页中嵌入某个图片标签,被攻击者浏览器加载这个图片时就会攻击。 (2)伪造POST请求:创建包含隐藏表单的网页,被攻击者访问这个页面则自动提交隐藏表单。 (3)引诱点击:邮件或聊天信息包含吸引人的短链接,点击后即触发攻击。 4、防御CSRF攻击的方式 防御CSRF攻击核心是让请求变得不可预测、不可伪造,所以常见的几种防御 方式如下所示: (1)尽量使用POST请求,限制GET请求。 因为使用post可以隐藏一些参数,攻击者再去伪造正常的请求就没有那么容易了。 (2)设置cookie参数HttpOnly 将cookie设置为HttpOnly,设置方式如下:
(3)使用CSRF Token 服务端生成一个随机的、不可预测的Token放在表单或请求头中,用户提交请求时,服务端验证这个Token是否合法。恶意网站无法获取到这个Token,因此无法伪造请求。这也是Spring Security框架中采用的防范方式。 (4)双重Cookie验证 将Cookie中的某个值也作为参数随请求一起提交,因为恶意网站无法读取你信任网站的Cookie,所以它无法知道这个值是什么,也就无法完成攻击。 总结: (1)CSRF攻击是用户登录了信任的网站,却被攻击者冒充用户的身份向网站发出了请求。 (2)攻击者设下"陷阱链接",用户一旦点击就触发攻击CSRF攻击。 (3)防御CSRF攻击核心思路就是让请求变得不可预测、不可伪造。 阅读原文:https://mp.weixin.qq.com/s/JfKuqIpNNv8LO3HT16CGCg 该文章在 2026/1/19 11:15:00 编辑过 |
关键字查询
相关文章
正在查询... |