CSRF攻击
发布日期:2021-11-21 16:35:27
浏览次数:9
分类:技术文章
本文共 1062 字,大约阅读时间需要 3 分钟。
CSRF跨站请求伪造,指的是黑客诱导用户点击链接,打开黑客的网站,然后黑客利用用户目前的登录状态发起跨站请求。
CSRF可能会自动发 GET 请求、自动发 POST 请求或者诱导点击发送 GET 请求。 自动发 GET 请求:进入页面后自动发送 get 请求,这个请求会自动带上关于 xxx.com 的 cookie 信息(如果已经在 xxx.com 中登录过)。并且服务器端没有相应的验证机制,它可能认为发请求的是一个正常的用户,因为携带了相应的 cookie,然后进行相应的各种操作,可以是转账汇款以及其他的恶意操作。 自动发 POST 请求:黑客可能自己填了一个表单,写了一段自动提交的脚本。同样也会携带相应的用户 cookie 信息,让服务器误以为是一个正常的用户在操作。 诱导点击发送 GET 请求:在黑客的网站上,可能会放上一个链接,诱导用户点击,点击后,自动发送 get 请求,这个请求会自动带上关于 xxx.com 的 cookie 信息(如果已经在 xxx.com 中登录过)。并且服务器端没有相应的验证机制,它可能认为发请求的是一个正常的用户,因为携带了相应的 cookie,然后进行相应的各种操作,可以是转账汇款以及其他的恶意操作。 和XSS攻击对比,CSRF 攻击并不需要将恶意代码注入用户当前页面的html文档中,而是跳转到新的页面,利用服务器的验证漏洞和用户之前的登录状态来模拟用户进行操作。防范措施:
(1)利用 Cookie 的 SameSite 属性,SameSite可以设置为三个值,Strict、Lax和None。在Strict模式下,浏览器完全禁止第三方请求携带Cookie。在Lax模式下只能在 get 方法提交表单或者a 标签发送 get 请求的情况下可以携带 Cookie,其他情况均不能。在None模式下,也就是默认模式,请求会自动携带上 Cookie。 (2)验证来源站点,需要用到请求头中的:Origin和Referer两个字段,Origin只包含域名信息,Referer包含了具体的 URL 路径。这两个都是可以伪造的, Ajax 中可以自定义请求头,安全性略差。 (3)CSRF Token,浏览器向服务器发送请求时,服务器生成一个字符串,将其植入到返回的页面中。然后浏览器如果要发送请求,就必须带上这个字符串,然后服务器来验证是否合法,如果不合法则不予响应。这个字符串也就是CSRF Token,通常第三方站点无法拿到这个 token, 因此也就是被服务器给拒绝。转载地址:https://blog.csdn.net/yyychocolate/article/details/108033364 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
逛到本站,mark一下
[***.202.152.39]2024年04月14日 22时59分01秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
系统架构设计笔记(73)—— 政府信息化与电子政务
2019-04-26
系统架构设计笔记(74)—— 企业信息化与电子商务
2019-04-26
系统架构设计笔记(75)—— 知识管理与商业智能
2019-04-26
说说在 log4j 中如何把日志记录到不同的文件中
2019-04-26
说说 jBPM 流程定义语言(3)—— state 活动 (状态活动)
2019-04-26
说说如何安装 Jenkins 2.x
2019-04-26
说说什么是 Android 的碎片(Fragment)
2019-04-26
说说如何使用 Android 的碎片(Fragment)
2019-04-26
说说 Android 碎片 (Fragment) 的生命周期
2019-04-26
运行 Tomcat, 在 Intellij IDEA 控制台输出中文乱码的解决方法
2019-04-26
说说 Android 中动态加载布局的实用技巧
2019-04-26
说说 Android 中如何实现同时兼容手机与平板的新闻应用界面
2019-04-26
说说 Android 的广播机制
2019-04-26
说说在 Android 中如何接收系统广播
2019-04-26
说说在 Android 中如何发送自定义广播
2019-04-26
说说如何使用 Android 的本地广播
2019-04-26
说说在 Android 中如何实现强制下线功能
2019-04-26
说说 jBPM 流程定义语言(8)—— sub-process(子流程活动)
2019-04-26