强烈向大家推荐一个好网站,【我要自学网】,教程由在校老师录制,有办公会计、平面设计、室内设计、机械设计、网页编程、影视动画等教程.....让你足不出门,都可以体验学校的专业教育!
CSRF攻击: 跨站请求伪造
攻击原理:
攻击者引导受害者访问其指定的URL, 以受害者的身份名义(cookie)发送恶意请求, 执行某些能改变数据的操作.
攻击场景举例:
受害者登录了a.com
, 浏览器保存a.com
对应的cookie
, 此时a.com
认为该浏览器是可信任的.
攻击者给受害者发邮件, 里面包含图片<img src="http://a.com/转账/100" />
, 受害者查看图片, 此时浏览器会携带上a.com
的cookie
去访问转账
的方法, 完成攻击.
防御:
主要使用token
:
原理是服务器给客户端分发token
, 客户端请求时必须带上这个token
, 没带的就视为攻击.
具体实现
- 可以在渲染页面时, 自动给表单加上隐藏
token
字段, 从这个表单来的请求都会携带该token
; token
的分发可以通过服务端向客户端设置cookie
来实现
Yii2和CSRF
基于CSRF的攻击特点, Yii2只对除GET
, HEAD
, OPTIONS
之外的非安全
请求进行验证.
日常开发中, GET
请求应该是只读的
, 不应该改动数据本身.