XSS
XSS跨站脚本攻击
手段: 黑客将JS代码插入到网页中,渲染时执行JS代码
预防: 特殊字符替换(前端和后端都可以做)
vue 和 react 插值表达式,都是可以预防的
但是 vue v-html react dangerouslySetInnerHTML这个是没有预防的
预防手段比如
const newStr = str.replaceAll('<', '<').replaceAll('>', '>')
csrf 跨站请求伪造
- 用户登录了A网站,有了cookie
- 黑客诱导用户到B网站,并发起了A网站请求
- A网站的API发现有了cookie,认为是用户自己操作的
预防手段比如
- 严格的跨域请求限制,如判断refener(请求来源)
- 关键接口使用短信验证码
3.为cookie设置 SameASite,禁止跨域传递cookie
点击劫持
黑客会隐藏一个真正的点击按钮,暴露一个展示正常的点击按钮,我们点击这个暴露出来正常的按钮时,就是点击了隐藏的按钮,发起一些不正当的请求
类似于我们在csdn上的那个提示信息,跳转到其他网页
点击劫持预防
if(top.location.hostname !== self.location.hostname) {
alert("您正在访问不安全的页面,即将跳转到安全页面")
top.location.hostname = self.location.hostname
}
DDoS
DDoS 分布式拒绝服务
手段: 分布式的,大规模的流量访问,使服务器瘫痪,
就好像一个马路上突然出现了很多车,就直接是这个马路堵塞起来预防: 软件层不好做,需要硬件预防,(阿里云WAF)
SQL注入
手段: 黑客提交内容时,写入SQL语句,破坏数据库
预防: 处理输入的内容,替换特殊字符串