CSRF跨站点请求伪造(Cross Site Request Forgery)攻击
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传参的不便性。
最新文章
- C# Invoke或者BeginInvoke的使用
- Ubuntu下deb文件及tgz文件安装
- Web Analytics 2.0 中文翻译 [ 系列索引 ]
- codeforces Codeforces Round #380 (Div. 1, Rated, Based on Technocup 2017 - Elimination Round 2)// 二分的题目硬生生想出来ON的算法
- xilium CefGlue集成包
- hdu 2896 病毒侵袭 ac自动机
- 使用EXECUTE IMMEDIATE来生成含有绑定变量的SQL
- ubuntu下安装oracle
- SQLserver查看数据库端口 脚本
- PHP上传遇到的问题-php 上传大文件主要涉及配置upload_max_filesize和post_max_size两个选项
- 【HDOJ】2544 最短路
- mac在 aliyun linux ecs实例上安装 jdk tomcat mysql
- Linux下arp用法
- app wap开发mobile隐藏地址栏的js
- 【原】eclipse创建maven工程时,如何修改默认JDK版本?
- windows下配置maven
- rxjs 常用的管道操作符
- Aop的基本介绍
- Dubbo -- 系统学习 笔记 -- 示例 -- 集群容错
- [Luogu 3128] USACO15DEC Max Flow
热门文章
- Pytorch实战学习(四):加载数据集
- Visusl Studio使用技巧
- SQL server数据库 账户SA登录失败,提示错误:18456
- MxDraw云图平台(H5在线CAD) 网页CAD,网页查看CAD图纸,2023.02.26更新
- MySQL半一致读实验
- 一加5T刷入魔趣
- Linux上的I2C基础知识
- Gradle 安装配置
- COM三大接口:IUnknown、IClassFactory、IDispatch。
- SAP Process Orchestration (SAP PO): The Comprehensive Guide (2nd Edition) (SAP PRESS)