**
- -
CSRF:跨站请求伪造
**
白话解释:简单说—-黑客伪装成被攻击者,用被攻击者的网站身份去操作远端的网站服务,即被攻击者正常的浏览网页(如访问了百度文库)又点击了含有恶意代码(img标签:删除百度文库的所有文件)的网站,则你就发现自己辛辛苦苦在百度文库积攒的文件都没了,自己没删除啊?怎么就没了?
**
Csrf的攻击原理
**
用户在正常的浏览网页,用户的浏览器也拿到了网站的认证(cookie),可以畅通操作该账户权限下所有的功能,but用户又有其他需求需要点击其他的网站,不好这个网站还有恶意的操作行为(对用户的已有的cookie的网站操作),则浏览直接封装该恶意的请求,发送到正常的网站请求操作,导致在用户不知情的情况下操作了自己不知的操作。
攻击流程:
1.User1浏览并登陆正常的网站A
2.验证通过并在user1的浏览器产生网站A的cookie
3.User1在没有退出网站A的情况下访问了网站B(恶意网站)
4.网站B的页面里包含(操作网站A的)恶意行为
5.User1的浏览器会认为user1出发对网站A的操作行为,则带着cookie去操作网站A
6.攻击成功
Csrf的攻击危害
以被攻击者的名义发请求操作,盗取你的账号,甚至购买商品,货币转账,个人隐私泄露以及财产安全等。
Csrf的防御:
有server和client端防御:
就server端可以:
1 增加sha1值的验证,伪造请求无法携带sha1值,则服务端不响应
2 增加验证码机制,用户请求操作后会有验证机制(如:百度文库请求删除会弹出“确认删除吗?”然后用户可以进步一确认)
3 增加每个页面的伪随机数,就是每个操作页面的cookie值不一样,csrf攻击请求用的cookie对恶意操作的页面不生效。
4 验证码,重要的操作必须要验证码,才能通过。
等还有新的防御技术,暂时没了解到。