当前位置:网站首页>CSRF攻击
CSRF攻击
2022-06-25 10:14:00 【m0_49471668】
得分点 CSRF时跨站请求伪造、盗用用户身份发起请求 标准回答
CSRF跨站点请求伪造(Cross Site Request Forgery)和XSS攻击一样,有巨大的危害性,就是攻击者盗用了用户的身份,以用户的身份发送恶意请求,但是对服务器来说这个请求是合理的,这样就完成了攻击者的目标。
CSRF攻击的过程原理是: - 用户打开浏览器,访问目标网站A,输入用户名和密码请求登录 - 用户信息在通过认证后,网站A产生一个cookie信息返回给浏览器,这个时候用户以可正常发送请求到网站A - 用户在没有退出网站A之前在同一个浏览器打开了另一个新网站B。 - 新网站B收到用户请求之后返回一些攻击代码,并发出一个请求要求访问返回cookie的网站A - 浏览器收到这些攻击性代码之后根据新网站B的请求在用户不知道的情况下以用户的权限操作了cookie并向网站A服务器发起了合法的请求。
预防CSRF攻击主要有以下策略:
- 使用验证码,在表单中添加一个随机的数字或者字母验证码,强制要求用户和应用进行直接的交互。
- HTTP中Referer字段,检查是不是从正确的域名访问过来,它记录了HTTP请求的来源地址。
- 使用token验证,在HTTP请求头中添加token字段,并且在服务器端建立一个拦截器验证这个token,如果token不对,就拒绝这个请求。
加分回答
验证HTTP Referer字段的好处就是实施起来特别简单,普通的网站开发不需要特别担心CSRF漏洞,只需要在最后面设置一个拦截器来验证referer的值就可以了,不需要改变已有的代码逻辑,非常便捷。但是这个方法也不是万无一失的,虽然referer是浏览器提供的,但是不同的浏览器可能在referer的实现上或多或少有自身的漏洞,所以使用referer的安全保证是通过浏览器实现的。使用token验证的方法要比referer更安全一些,需要把token放在一个HTTP自定义的请求头部中,解决了使用get或者post传参的不便性。
边栏推荐
- Free platform for wechat applet making, steps for wechat applet making
- On binary tree
- [paper reading | depth] role based network embedding via structural features reconstruction with degree regulated
- SQL to object thinking vs SQL of object thinking
- How to do the wechat selling applet? How to apply for applets
- OpenCV学习(二)---树莓派上安装opencv
- Shardingsphere proxy 5.0 sub database and sub table (I)
- Basic use and principle of Minio
- Flask博客实战 - 实现侧边栏文章归档及标签
- 《天天数学》连载52:二月二十日
猜你喜欢
ES 学习
一个五年北漂的技术er,根据这些年的真实经历,给应届生的一些建议
How to install SSL certificates in Microsoft Exchange 2010
Opencv learning (I) -- environment building
Flask blog practice - realize the latest articles and search in the sidebar
The title of my composition is - "my district head father"
ShardingSphere-Proxy 4.1 分库分表
【OpenCV 例程200篇】210. 绘制直线也会有这么多坑?
Flask blog practice - archiving and labeling of sidebar articles
i++ 和 ++i的真正区别
随机推荐
Houdini图文笔记:Could not create OpenCL device of type (HOUDINI_OCL_DEVICETYPE)问题的解决
Linked list delete nodes in the linked list
Experience in writing C
Is it safe to open an account with Guangzhou securities by mobile phone?
CDN+COS搭建图床超详细步骤
QT: parsing JSON
MCU development -- face recognition application based on esp32-cam
我的作文题目是——《我的区长父亲》
国信证券证券账户开户安全吗
Kotlin common standard functions
SQL to object thinking vs SQL of object thinking
无心剑中译伊玛·拉扎罗斯《新巨人·自由女神》
i++ 和 ++i的真正区别
Byte interview: under what scenario will syn packets be discarded?
JS【中高级】部分的知识点我帮你们总结好了
WPF Prism框架
【历史上的今天】6 月 24 日:网易成立;首届消费电子展召开;世界上第一次网络直播
Webapi performance optimization
How to make small programs on wechat? How to make small programs on wechat
Yolov5更换上采样方式