![f218357967098e3c052ddd317d3deefe.png](https://i-blog.csdnimg.cn/blog_migrate/47300a3f07e8f4463f59c406b7e81382.jpeg)
其实期末周已经抽不出身写梳理文章了,但是刚好遇上了安全课的期末作业,也就顺势梳理一下web安全的一些些知识。本来是打算写csrf和xss的,但是好像做完答辩ppt,为了把csrf这个安全问题给我自己讲清楚已经花了五十页 ,于是就把标题改了,之前看过一个美团技术团队关于xss的文章写的很好的链接在这里。
(ps:因为没有专门做过相关的工作,这篇文章讲的并不是很深很实践得到的东西,只是把这一个安全问题可以串联起来的知识点顺一顺,比如计算机网络http无状态,登录态维持与cookie,浏览器同源政策, 一般防范csrf的操作,框架提供的防范操作,OAUTH2存在的csrf问题及防范的方式。)
由于浏览器的安全策略——同源政策,进行web开发经常会遇到跨域问题,于是就有了常用的几种解决方式服务器转发,CORS,jsonp。而jsonp的这种我认为有一点点hack的方式其实和csrf攻击的原理是一致的,在不违反同源政策的条件下利用请求资源的方式完成了跨域请求资源。那么:
- 到底什么是csrf攻击,原理是什么?
- 如何去防范csrf攻击?
- 为什么OAUTH2的过程会存在csrf风险?
下面梳理一下
CSRF攻击的原理
- 浏览器同源政策
同源政策是浏览器的一个安全政策
- 目的:是为了防止将用户信息恶意的盗取传输
- 同源含义:域名(IP),协议头, 端口三者相同
- MDN同源政策的内容:
- 通常允许跨域写操作 :重定向以及表单提交。
- 通常允许跨域资源嵌入:<script><link><img><video><iframe>
- 不允许跨域读操作: ajax
不允许跨域读操作, 那么就代表了有三种操作会受到同源政策的限制,即不同源网站间的AJAX的请求,网站间的DOM操作,以及两者间的cookie和indexDB之间的访问。即同源政策通过限制你获取当前用户记录在其他源下的cookie等
记录在浏览器端的用户数据,以及限制了使用AJAX发送数据到其他的源的方式,以此来保障安全。那么显而易见