1.1.1. 网络安全与攻防
同源策略
工作日常、面试重点、安全架构
简介
禁止一个源(origin)的脚本&文档和另一个源的脚本&文档交互
同源:两个URL的protocol、port、host相同
跨域的N种方法
- Jsonp
利用不限制跨域脚本执行的特点
- CORS(Cross-Origin-Resource-Sharing)跨域资源共用
在达成CORS之前,客户端需要先发送「预检请求」来询问服务端是否支持CORS。一般携带以下请求头部:
另外这个预检请求是浏览器自发的发送。
OPTIONS /resource/foo
Access-Control-Request-Method: POST
Access-Control-Request-Headers: origin, x-requested-with
Origin: https://foo.bar.org
MDN上的预检请求
如果服务端支持CORS就会返回响应,且头部带着允许的origin(也就是客户端地址)
使用额外HTTP头允许执行的源和另一个源进行交互

当然我们需要辨别简单请求和复杂请求,因为他们的请求头部和响应头部不太一样,后者会多几个字段。
简单请求的两个条件:
- 请求方法是以下三种方法之一:
- HEAD
- GET
- POST
- HTTP的头信息不超出以下几种字段:
- Accept//客户端或代理能够处理的媒体类型
- Accept-Language//优先的语言(中文、英文……)
- Content-Language// 实体主体的自然语言
- Content-Type:只限于三个值application/x-www-form-urlencoded、multipart/form-data、text/plain
凡是不同时满足上面两个条件,就属于非简单请求。
复杂请求需要发送OPTIONS

- 代理
利用代理将不同源的资源代理到同源的资源
不通过浏览器,也就没有了同源策略

实战CORS
javascript
常见网络安全攻防
安全知识、面试重点、高压线
攻击手段
- 阻断服务攻击(Denial of service attack)(DoS)
想办法将目标目标网络资源用尽
分布式阻断服务攻击(Distributed Denial of service)(DDos)
通过各种肉鸡去消耗目标的流量资源。
- 地址解析欺骗(Address Resolution Protocol spoofing)ARP攻击

- 跨站脚本攻击(Cross Site Scripting)XSS
将跨站脚本注入到被攻击网页上,用户打开网页会执行跨站脚本

- SQL注入

- 跨站请求伪造(csrf)
通过
- HTTPS中间人攻击
也就是抓包的原理,需要安装伪造的非法根证书。
.png)
防御策略
DDos:防火墙、交换机(路由器)、流量清洗
过滤异常流量
XSS:输入过滤,输出过滤。转义
SQL注入:输入过滤,数据库安全策略