#### XSS
1. 反射型XSS攻击:危害较小
1. 黑客把带有恶意脚本代码参数的URL地址发给用户
2. 用户点击此链接
3. 服务器端获取请求参数并且直接使用,服务器反射回结果页面、
4. queryparams=<script>alert(88)</script>,服务器直接返回参数脚本导致浏览器执行脚本,部分Chrome浏览器内置了一些XSS过滤器,可以防止大部分反射型XSS攻击
5. 反射型XSS是一次性的,需要用户主动点击才会执行
2. 存储型XSS攻击:危害更大
1. 黑客将恶意脚本代码上传或存储到漏洞服务器
2. 服务器把恶意脚本保存到服务器
3. 当正常用户访问服务器时,服务器会返回包含恶意脚本的代码
4. 案例:留言评论,以及用户输入内容提交服务并返回到页面的情况
5. 案例:获取用户的cookie等用户唯一标识
3. DOM-Based型XSS,不需要服务端参与
1. 页面追加用户添加的内/容并追加到页面上去
4. payload
1. 伪造请求GET POST
2. XSS钓鱼,通过向XSS网页上注入钓鱼链接,让用户访问假冒的网站
#### XSS防御
1. 给cookie加上httponly属性,脚本无法获取
2. 输入检查
1. 永远不要相信用户的输入
2. 用户格式判断 白名单
3. 过滤危险字符 去除
3. 前端过滤:对输入的内容进行转义
4. 后端过滤:后端可以发起请求向服务器添加数据
#### CSRF:跨站脚本攻击,核心问题在于cookie有效
1. 跨站请求伪造
1. 用户A登录银行网站,登录成功后响应头设置cookie
2. 黑客诱导用户A登录到黑客的站点,然后返回一个页面
3. 用户访问这个页面,页面会伪造一个转账请求到银行网站
#### CSRF防御:主流三种方案
1. 用户不知情 验证码 影响用户体验 -> 这种也有问题,爬虫可以破解验证码
2. 跨站请求 使用refer验证 不可靠,可以使用node进行请求,所以不可靠 || 本站地址外连也会被认为不是本站请求
3. 参数伪造 token最主流的防御CSRF
#### DDOS攻击:分布式拒绝服务
1. 黑客控制大量的肉鸡向受害主机发送非正常请求,导致目标主机耗尽资源不能为合法用户提供服务
2. 验证码能够有效地防止多次重复的行为
3. 限制请求频率是我们最常见的针对DDOS攻击的防御措施,为每个客户端的请求频率的限制
4. 增加服务器带宽
5. 使用主流云系统和CDN(云和CDN其自身有DDOS的防范作用)
6. 优化资源使用提高web server的负载能力
#### HTTP劫持
1. 在客户端与服务端进行通信的网络传输过程中,HTTP劫持了通信通道,并注入网络数据报文等信息
2. 通过HTTPS可以解决HTTP劫持的问题