1.XSS(Cross-Site Scripting)跨站脚本
用户可能提交一些恶意脚本,比如提交一些字符串然后被浏览器转化为DOM从而破坏系统。我们不能盲目信任用户提交的任何内容。
XSS有两种类型:存储型与反射型。
存储型危害极大,用户输入的内容可能被保存在数据库中,然后可能对网站内所有用户浏览进行攻击。比如在新闻评论区,如果加入一段脚本,可能被服务器保存:
fetch("/submit", {
body: JSON.stringfy({
id: "1",
content: `<script>alert("xss");<script>
})
}
)
上面这段SQL语句的content就会对系统造成损害。
反射型XSS不涉及数据库,从URL上进行攻击,它可能在URL中添加一些脚本:
host/paht/?param=<script>alert("xss")<script>
2.CSRF(Cross-site request forgery) 伪造跨站请求
它在用户不知情的情况下,利用用户权限(cookie),构造指定HTTP请求,窃取或修改用户信息。比如用户点了一个恶意页面,这个恶意页面请求银行转账接口,银行一看cookie什么的都对,同意了请求,用户账户就被盗窃了。
如何进行防范呢:
(1)如果请求是异常来源,就拒绝请求并提醒用户网站不安全。
(2)使用Token防御机制,服务器接到请求页面后,返回Token和页面,接着用户需要提交请求API和token,服务器验证通过才会返回数据
(3)SameCoookie,只允许第一方cookie,不允许第三方cookie(离柜概不负责)
3.数据库注入攻击
插入SQL语句,甚至可能直接注入删库语句
防御方法:将注入语句转义,而不是直接存储
4.Dos(DDos)Denial of Service
Dos是服务器拒绝的意思,当服务器资源被显著消耗,就会来不及响应其他请求,导致无法被其他用户访问。海投简历其实就是一种人工Dos
DDos是分布式Dos,从控制的不同来源的机器发出Dos攻击,短信轰炸就是一种DDos
防御:负载均衡、API网关、CND、快速自动扩容,非核心业务自动降级。
5.中间人-传输层
涉及TLS/LLS,HTTPS协议,数字证书。