yii2中无论是用测试工具POSTMAN、用命令行CURL请求、ajax请求总是会得到http400:Bad Request的错误;而如果用Web网页方式GET访问(去除verbFilter的POST限制),是正常的

通过查阅资料发现,这是CRSF验证的原因

原理:

Cookie Hashing, 让服务器发送给客户端的所有表单中都标示一个随机值_csrf,并同时在客户端的COOKIE中保存一个相关联的token;

验证的时候,服务端每次对接收到的请求_POST()过来的一个input hidden _csrf跟客户端的COOKIE中的token进行对照验证

攻击者攻击的原理是利用了客户端的COOKIE,但是攻击者是得不到COOKIE具体的内容的,他只是利用(这里抛开XSS攻击的可能性,由于用户的Cookie很容易由于网站的XSS漏洞而被盗取,这就另外的1%。一般的攻击者看到有需要算Hash值,基本都会放弃了);所以攻击者没法在攻击URL中加入token,这样就无法通过验证。

这可能是最简单的解决方案了,因为攻击者不能获得第三方的Cookie(理论上),所以表单中的数据也就构造失败了

解决方案:

1.禁用CRSF验证(不推荐):'enableCsrfValidation' => false,

'components' => [

'request' => [

'cookieValidationKey' => '83r5HbITBiMfmiYPOZFdL-raVp4O1VV4',

'enableCookieValidation' => false,

'enableCsrfValidation' => false,

]

2.数据提交时,携带 csrf 信息

a.调用组件ActiveForm时,提交数据会自动带上_csrf

b.ajax提交时可以在头部获取到csrf信息(如下图),与要提交的数据一并提交即可

c.也可以通过php获取csrf信息

Yii::$app->request->csrfParam;(获取csrf-param)

Yii::$app->request->csrfToken;(获取csrf-token)

csrf攻击防御 php,Yii2.0防御csrf攻击方法相关推荐

  1. WEB攻击手段及防御第3篇-CSRF

    概念 CSRF全称即Cross Site Request forgery,跨站点请求伪造,攻击者通过跨站点进行伪造用户的请求进行合法的非法操作,其攻击手法是通过窃取用户cookie或服务器sessio ...

  2. 跨站请求伪造(CSRF)示例、原理及其防御措施

    文章目录 概述 例子 原理 防御 使用token验证 判断Referer/Origin SameSite Cookie属性 概述 CSRF是Cross Site Request Forgery的缩写, ...

  3. 常见的网站攻击以及如何防御自己的网站被恶意攻击

    常见的网站攻击 1,XSS攻击:Cross Site Script,跨站脚本攻击,指黑客通过篡改网页,在提交的内容中写一些恶意攻击的js脚本.举个例子,攻击者在网站留言或者发布带有恶意脚本的连接,诱导 ...

  4. 758.6G每秒:阿里云成功防御国内最大规模Memcached DDoS反射攻击

    本周,阿里云安全DDoS监控中心数据显示,利用Memcached 进行DDoS攻击的趋势快速升温.今天, 阿里云已经成功监控和防御一起流量高达758.6Gbps的Memcached DDoS反射攻击. ...

  5. ARP攻击原理简析及防御措施

    0x1  简介 网络欺骗攻击作为一种非常专业化的攻击手段,给网络安全管理者,带来严峻的考验.网络安全的战场已经从互联网蔓延到用户内部的网络, 特别是局域网.目前利用ARP欺骗的木马病毒在局域网中广泛传 ...

  6. 什么是Teardrop攻击?我们要如何防御Teardrop攻击?

    Teardrop攻击是一种拒绝服务攻击,是一种基于UDP的病态分片数据包的攻击方法,英文"Tear"是"眼泪"的意思,"drop"是&quo ...

  7. 【Web安全笔记】之【7.0 防御技术】

    文章目录 7.0 防御技术 7.1 团队建设 7.1.1 人员分工 1. 部门负责人 2. 合规管理员 3. 安全技术负责人 4. 渗透/代码审计人员 5. 安全设备运维人员 6. 安全开发 7.1. ...

  8. 常见的web攻击有哪些?如何防御?

    web攻击是什么 Web攻击(WebAttack)是针对用户上网行为或网站服务器等设备进行攻击的行为,如植入恶意代码.修改网站权限.获取网站用户隐私信息等 Web应用程序的安全性是任何基于Web业务的 ...

  9. 浅析防御僵尸网络基于应用层的DDOS攻击

    近期数据显示,针对应用层的DDOS攻击有加速的趋势.据预测,基于应用层的DDOS攻击每年以三倍的速度增长,Gartner预测DDOS攻击会占2013年所有的应用层攻击中的25%左右.研究指出,黑客现在 ...

最新文章

  1. 剑指offer:面试题11. 旋转数组的最小数字
  2. [转载]AIX 上 Lotus Domino 的内存使用
  3. U-boot mkimage指定Linux内核地址时的两种方式
  4. LeetCode-二分查找-278. 第一个错误的版本
  5. cloudera manager 及CDH卸载
  6. 争议“云游戏”:一个几十亿规模的颠覆者?一场徐虎飘渺的幻梦
  7. 服务器防火墙,linux下iptables防火墙配置相关
  8. Android 开发者们,如何使用 Python 来扩展 adb 命令?
  9. 蓝桥集训之位运算和相关函数
  10. 落实业务服务管理从基础设施管理做起
  11. 拓端tecdat|windows中用命令行执行R语言命令
  12. linux下安装xgboost
  13. [Cogs728] [网络流24题#3] 最小路径覆盖 [网络流,最大流,二分图匹配]
  14. Syncthing:开源 P2P 文件同步工具
  15. 整理下关于Visual Foxpro的技术
  16. 【NeurIPS 2019】Yoshua Bengio报告:深度学习系统从1代到2代中的基础知识
  17. 大一新生 电脑小白如何选择电脑 电脑知识全面讲解
  18. Gitlab用户角色权限Guest、Reporter、Developer、Master、Owner
  19. 史上最全电子元器件实物外形图+电路符号
  20. Github官网无法访问问题

热门文章

  1. 9、Windows驱动开发技术详解笔记(5) 基本语法回顾
  2. 两个场景怎样合在一起_Spring AOP应用场景你还不知道?这篇一定要看
  3. c java 异常_javac -version 异常
  4. 2.19 总结-深度学习-Stanford吴恩达教授
  5. STM32 进阶教程 7 -  C与C++混合编程
  6. Altium Designer Exception ESocketError in module X2.EXE at 001B15CF (10107) on API 'Socket'
  7. Verdi - GUI技能操作 Before you start (未完)
  8. Xilinx---vivado系列
  9. Android Log等级的介绍
  10. iqooneo5支持鸿蒙系统吗,iqooneo5活力版有双卡双待吗_iqooneo5活力版支持5g吗