CSRF
csrf是什么?
全称:Cross-site request forgery
中文名称:跨站请求伪造
危害:执行恶意操作(“被转账”,“被发垃圾评论”等)
制造蠕虫
…
概念:利用用户已登录的身份,在用户毫不知情的情况下,以用户的名义完成非法操作。
csrf原理分析:
用户可以从自己账户转账,
黑客不能从其他人账户转账,
黑客构造恶意网页,
用户主动访问恶意网页,转账到黑客账户。
通常Cookit当中会存放用户凭证信息
浏览器在发送任何请求时,会自动带上已有的cookie
通过Cookie识别用户身份后,执行转账操作。
举例:
CSRF攻击的主要目的是让用户在不知情的情况下攻击自己已登录的一个系统,类似于钓鱼。如用户当前已经登录了邮箱,或bbs,同时用户又在使用另外一个,已经被你控制的站点,我们姑且叫它钓鱼网站。这个网站上面可能因为某个图片吸引你,你去点击一下,此时可能就会触发一个js的点击事件,构造一个bbs发帖的请求,去往你的bbs发帖,由于当前你的浏览器状态已经是登陆状态,所以session登陆cookie信息都会跟正常的请求一样,纯天然的利用当前的登陆状态,让用户在不知情的情况下,帮你发帖或干其他事情。
CSRF的防御措施:
1.通过 referer、token 或者 验证码 来检测用户提交。
2.尽量不要在页面的链接中暴露用户隐私信息。
3.对于用户修改删除等操作最好都使用post 操作 。
4.避免全站通用的cookie,严格设置cookie的域。