本质:产生的原因本质上是参数可知或可预测
防御:
1、加密参数:加密加盐,不可知,不可预测
     忧虑,引入其他麻烦:一、数据分析困难
                                     二、正常功能会受影响,比如url收藏
2、验证码:用户在确认操作
     破解:只防止了用户不知情点击的情况,用户知情时也可以诱导点击
3、referer check:验证上一url,源检测
     破解:一、诱导合理顺序产生合理源referer
               二、有些应用可以自定义referer
     忧虑:referer check不一定可用,有些应用禁止了(处于隐私考虑或其他)
     辅助手段
4、token:增加一个随机参数  (问题:只是参数值随机、不可预测,还是参数名也有必要随机?    名也随机不好传参?),只有服务端与客户端知道的秘密(如可在cookie中也放置,对比与提交的参数(表单)中是否一致,具体应用场景具体设计)
      缺陷:只防护单纯的csrf,当存在xss时,token也被获取
    
具体应用场景、业务可使用、适用的不同,有些简单设置,有些严格设置;设想如果可以token加密怎样?  这几种都应用怎样?
但具体业务场景中不太现实,毕竟还需要为业务做数据分析、考虑用户体验等等;
so,具体应用、场景,具体分析、设计; 

CSRF的本质及防御的更多相关文章

  1. CSRF 攻击原理和防御方法

    1. CSRF攻击原理 CSRF(Cross site request forgery),即跨站请求伪造.我们知道XSS是跨站脚本攻击,就是在用户的浏览器中执行攻击者的脚本,来获得其cookie等信息 ...

  2. 用代码来细说Csrf漏洞危害以及防御

    开头: 废话不多说,直接进主题. 0x01 CSRF介绍:CSRF(Cross-site request forgery)跨站请求伪造,也被称为“One Click Attack”或者Session ...

  3. CSRF攻击原理以及防御方法(写的很好)

    转载地址:http://www.phpddt.com/reprint/csrf.html        CSRF概念:CSRF跨站点请求伪造(Cross—Site Request Forgery),跟 ...

  4. CSRF的攻击与防御(转)

    add by zhj:CSRF之所有发生,是因为http请求中会自动带上cookies,我的解决办法是:前端不要将数据放在cookie中,而是放在其它本地存储 (HTML5中称之为Web Storag ...

  5. CSRF攻击原理以及防御

    一.CSRF是什么? CSRF(Cross-site request forgery),中文名称:跨站请求伪造,也被称为:one click attack/session riding,缩写为:CSR ...

  6. CSRF之攻击与防御

    0x01 什么是CSRF攻击 CSRF是Cross Site Request Forgery的缩写(也缩写为XSRF),直译过来就是跨站请求伪造的意思,也就是在用户会话下对某个CGI做一些GET/PO ...

  7. CSRF攻击原理及防御

    一.CSRF攻击原理 CSRF是什么呢?CSRF全名是Cross-site request forgery,是一种对网站的恶意利用,CSRF比XSS更具危险性.想要深入理解CSRF的攻击特性我们有必要 ...

  8. CSRF学习笔记之CSRF的攻击与防御以及审计【00x3】

    Hight.php完整代码如下: <?php if (isset($_GET['Change'])) { // Turn requests into variables $pass_curr = ...

  9. SpringSecurity框架下实现CSRF跨站攻击防御

    一.什么是CSRF 很多朋友在学习Spring Security的时候,会将CORS(跨站资源共享)和CSRF(跨站请求伪造)弄混,以为二者是一回事.其实不是,先解释一下: CORS(跨站资源共享)是 ...

随机推荐

  1. Tomcat(四):tomcat图形管理和身份认证

    */ .hljs { display: block; overflow-x: auto; padding: 0.5em; color: #333; background: #f8f8f8; } .hl ...

  2. 【转】c++ 获取程序运行时间

    转自:http://blog.csdn.net/ghevinn/article/details/22800059 DWORD start_time=GetTickCount(); {...} DWOR ...

  3. [svn] TortoiseSVN 图文操作

    TortoiseSVN 图文操作 [参考]https://jingyan.baidu.com/article/6c67b1d6f524d52787bb1ef3.html

  4. 认识python中的set集合及其用法

    python中,集合(set)是一个无序排列,可哈希, 支持集合关系测试,不支持索引和切片操作,没有特定语法格式, 只能通过工厂函数创建.集合里不会出现两个相同的元素, 所以集合常用来对字符串或元组或 ...

  5. java 世界中Annotation

    java 世界中Annotation 在github上开始汇总一些自己学习,收集,总结,经验的一些信息,有利于跟踪,修改,提升.如果你感兴趣 可以关注一下,也可以提供自己的内容进来. https:// ...

  6. Java对Jar文件的操作[转]

    原文地址:http://www.cnblogs.com/mailingfeng/archive/2012/04/24/2122160.html  String dirPath = System.get ...

  7. BZOJ 1444: [Jsoi2009]有趣的游戏 [AC自动机 高斯消元]

    1444: [Jsoi2009]有趣的游戏 题意:每种字母出现概率\(p_i\),有一些长度len的字符串,求他们出现的概率 套路DP的话,\(f[i][j]\) i个字符走到节点j的概率,建出转移矩 ...

  8. python爬虫(4)——正则表达式(一)

    在前几篇文章中我们使用了python的urllib模块,做了一些访问网页的工作.现在介绍一个非常强大的工具--正则表达式.在讲述正则的时候,我参考了<精通正则表达式(第三版)     ---Je ...

  9. yii2 源码分析Behavior类分析 (四)

    Behavior类是所有事件类的基类,它继承自object类 Behavior类的前面注释描述大概意思: * Behavior类是所有事件类的基类 * * 一个行为可以用来增强现有组件的功能,而不需要 ...

  10. paping使用来测试联通&网站由于tcp协议导致的无法通信问题超时问题

    1. 使用paping来测试连通性 Linux 平台: : wget http://www.updateweb.cn/softwares/paping_1.5.5_x86-64_linux.tar.g ...