跨站请求伪造:攻击者可以劫持其他用户进行的一些请求,利用用户身份进行恶意操作。
例如:请求http://x.com/del.php?id=1是一个删除ID为1的账号,但是只有管理员才可以操作,如果攻击者把这个页面嵌套到其他网站中
“http://x.com/del.php?id=1”> 再把这个页面发送给管理员,只要管理员打开这个页面,同时浏览器也会利用当前登陆的这个管理账号权限发出:http://x.com/del.php?1d=1这个请求,从而劫持此请求,利用管理员账户执行了一些操作。
危害:添加管理员账号、修改网络配置、直接写入webshell等
1、 挖掘经验
CSRF主要用于越权操作,因此多发生在有权限控制的地方。
黑盒挖掘:先搭建好环境,打开几个非静态页面,抓包看有没有token,如果没有,再直接请求这个页面,不带referer,如果返回数据还是一样的,那说明很有可能存在CSRF漏洞,
白盒挖掘:读取代码的核心文件,查看里边有没有验证token和referer相关的代码。或者直接搜索token这个关键字,再去看一下比较关心的功能点的代码有没有验证。
2、 漏洞防范
主流防范有两种:增加token/referer验证避免img标签请求的水坑攻击和增加验证码(影响用户体验)
(1)、利用token
Token实在页面或者cookie中插入一个不可预测的字符串,服务器验证token是否是上次留下的即可判断是不是可信请求;
Token实现代码:
通过MD5当前时间加上(1,1000)的随机数生成token,然后检查是否有token;
抓包,发现没有token,返回结果faild;
生成token值,发送返回结果success;
(2)、验证码实现
验证码没token那么实用,用户体验较差,所以这一种方式只能用在敏感操作的页面,利用登录页面等。
解决ajax跨域的方法原理详解之Cors方法
1.神马是跨域(Cross Domain) 对于端口和协议的不同,只能通过后台来解决. 一句话:同一个ip.同一个网络协议.同一个端口,三者都满足就是同一个域,否则就是 跨域问题了.而为什么开 ...
PHP开发中常见的安全问题详解和解决方法(如Sql注入、CSRF、Xss、CC等
页面导航: 首页 → 网络编程 → PHP编程 → php技巧 → 正文内容 PHP安全 PHP开发中常见的安全问题详解和解决方法(如Sql注入.CSRF.Xss.CC等) 作者: 字体:[增加 减小 ...
[转]js中几种实用的跨域方法原理详解
转自:js中几种实用的跨域方法原理详解 - 无双 - 博客园 // // 这里说的js跨域是指通过js在不同的域之间进行数据传输或通信,比如用ajax向一个不同的域请求数据,或者通过js获取页面中不同 ...
CSRF漏洞原理说明与利用方法
翻译者:Fireweed 原文链接:http://seclab.stanford.edu/websec/ 一 .什么是CSRF Cross-Site Request Forgery(CSRF),中文一 ...
CSRF漏洞原理浅谈
CSRF漏洞原理浅谈 By : Mirror王宇阳 E-mail : mirrorwangyuyang@gmail.com 笔者并未深挖过CSRF,内容居多是参考.& ...
CRF(条件随机场)与Viterbi(维特比)算法原理详解
摘自:https://mp.weixin.qq.com/s/GXbFxlExDtjtQe-OPwfokA https://www.cnblogs.com/zhibei/p/9391014.html C ...
I2C 基础原理详解
今天来学习下I2C通信~ I2C(Inter-Intergrated Circuit)指的是 IC(Intergrated Circuit)之间的(Inter) 通信方式.如上图所以有很多的周边设备都 ...
块级格式化上下文(block formatting context)、浮动和绝对定位的工作原理详解
CSS的可视化格式模型中具有一个非常重要地位的概念——定位方案.定位方案用以控制元素的布局,在CSS2.1中,有三种定位方案——普通流.浮动和绝对定位: 普通流:元素按照先后位置自上而下布局,inli ...
SSL/TLS 原理详解
本文大部分整理自网络,相关文章请见文后参考. SSL/TLS作为一种互联网安全加密技术,原理较为复杂,枯燥而无味,我也是试图理解之后重新整理,尽量做到层次清晰.正文开始. 1. SSL/TLS概览 1 ...
随机推荐
Fragment与FragmentAcitvity间的传值
Fragment与FragmentAcitvity间的传值 FragmentActivity中传值 Bundle bundle=new Bundle(); bundle.putSerializable ...
删除NSMutableArray中的二维数组
// 删除模型数据 [self.mutableArr[indexPath.section] removeObjectAtIndex:indexPath.row]; //删除UI(刷新数据,UI) [s ...
[笔记] 走进 Pocket,看看只有 20 位员工的 Pocket 是如何搞定 2000 万用户的
走进 Pocket,看看只有 20 位员工的 Pocket 是如何搞定 2000 万用户的 保持专注. 不断更新优先级. 对产品有主人翁意识. (觉得做好产品是自己的职责, 不是应付工作) 你的用户如 ...
How To mount/Browse Windows Shares【在linux{centos}上挂载、浏览window共享】
How to mount remote Windows shares Contents Required packages Basic method Better Method Even-better ...
edmx文件
MethodBase 提供有关方法的信息 在System.Reflector命名空间之下 edmx edmx:Runtime节点下包含与EF有关的定义与映射信息 edmx:ConceptualMode ...
[Android]图片资源管理学习
一.概念 几个概念:1.像素:像素是组成图像的最基本单位:点该点自身有大小,其中保存了颜色值 2.屏幕尺寸:screen size手机屏幕的物理尺寸.单位:inch(英寸)ex:4.0英寸 3.8英寸 ...
jquery自定义banner图滚动插件---(解决最后一张图片倒回第一张图片的bug)
banner图的滚动效果动画 最近做项目中banner滚动的时候遇到了一个小bug,当banner滚动到最后一张图再跳回第一张图时, 会出现默认的倒回第一张图的过渡效果,看了几个插件都是这样,所以自定 ...
maven中央仓库、远程仓库地址
1.http://repo1.maven.org/maven2 (官方,速度一般) 2.http://maven.aliyun.com/nexus/content/repositories/centr ...
docker中安装ps命令
apt-get update && apt-get install -y procps
linux缺失gcc的安装方法
linux安装gcc操作 1.查看linux是否有gcc文件 这个是没有挂载的 2. 使用df,查看系统光盘的挂载位置 3.卸载分区 umount /dev/sr0 4.将redhat系统光盘重新载入 ...