Cross Site Script 跨站脚本攻击
手段:黑客将 JS代码插入到网页内容中,渲染时执行 JS 代码。例如黑客可以得到用户cookie
通过<img>
规避跨域将cookie通过拼接到src
发送出去
预防:特殊字符替换, 例如替换<
,>
使其无法执行
Vue/React 中默认屏蔽了XSS 攻击,但如果在 Vue中使用v-html
,或在 React 中使用dangerouslySetInnerHTML
,插入script标签脚本,可能会被 XSS 攻击
Cross Site Request Forgery 跨站点请求伪造
手段:
过程:
- 用户访问A产生了cookie
- 黑客诱导用户访问另外一个网站B
- 背后在网站B携带用户cookie发起对A网站的请求,伪造请求通过服务器验证
- A网站接口根据cookie以为是用户自己的操作行为
预防:
- 服务端进行严格的跨域限制,判断refer来源
- 为cookie 设置
SameSite
,禁止跨域传递cookie - 验证码限制,二次验证
手段:诱导界面上加一层透明的ifram,诱导用户点击
预防:
- 判断页面的域名是否一致
if(top.location.hostname !== self.location.hostname){
alert('正在访问不安全的网站!即将跳转到安全网站')
top.location.hostname = self.location.hostname
}
- 让iframe不能跨域
Headers
头中设置X-Frame-Options: sameorigin
,只允许网页在自己的iframe中加载,第三方不能通过iframe对网页进行加载
Distribute denial-of-service 分布式拒绝服务
手段:分布式的,大规模的流量访问,使服务器瘫痪。通过散步木马程序到其他人的电脑上,控制他人电脑同时间对同一目标进行集中访问
预防:需要硬件预防,网站防火墙
手段:黑客提交内容时,通过提交 SQL 语句破坏数据库
预防:处理输入的内容,替换特殊字符