强烈向大家推荐一个好网站,【我要自学网】,教程由在校老师录制,有办公会计、平面设计、室内设计、机械设计、网页编程、影视动画等教程.....让你足不出门,都可以体验学校的专业教育!
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请求应该是只读的, 不应该改动数据本身.
流觞





