2022-10-31 13:16:39
浏览数 (2)
- 对于常规的Web攻击手段,如XSS、CSRF、SQL注入、(常规的不包括文件上传漏洞、DDoS攻击)等
1.XSS
- 跨站脚本攻击,因为缩写和css重叠,所以能叫XSS,跨脚本攻击是指通过存在安全漏洞的web网站注册用户的浏览器内非法的非本站点HTML标签或javascript进行一种攻击。
跨站脚本攻击有可能造成以下影响
- 利用虚假输入表单骗取用户个人信息
- 用脚本窃取用户的cookie值,被害者在不知情况的下,帮助攻击者发送恶意请求
防范手册
- HEAD ctx.set('X-XSS-Protection',0) //禁止XSS过滤
- 内容安全策略(CSP,Content Security Policy)是一个附加的安全层,用于帮助检测和缓解那些类型的攻击,包括跨站脚本(XSS)和数据注入等攻击,这些攻击可用于实现从数据窃取到网站破坏或作为恶意软件分发版本等用途
- HttpOnly Cookie 这是防止XSS攻击窃取用户cookie最有效的防御手段,web应用程序设置cookie时,将其属性设置为HttpOnly 就可以防止网页的cookie客户端恶意JavaScript窃取,保护用cookie信息
代码语言:javascript
复制设置方法:response.addHeader('Set-Cookie','uid=12;path=/; HttpOnly')
2.CSRF
- CSRF(Cross Site Request Forgery),既跨站请求伪造,是一种常见的web攻击,他利用用户以登录的身份,在用户不知情的情况下,以用户的名字完成非法操作
CSRF危害
- 盗取用户资金(转账,消费)
- 冒充用户发帖背锅
- 损害网站声誉
防范
- 禁止第三方网站带cookie ----有兼容性问题
代码语言:javascript
复制Referer Check ----Https不发送referer
app.use(async(ctx,next)=>{ koa中间件实现
await next()
const referer = ctx.request.header.referer
console.log('Referer:',referer)
})
- 点击劫持--clickjacking:点击劫持是一种视觉欺骗的攻击手段,攻击者将需要攻击的网站通过iframe嵌套方式嵌入自己的网页中,并将iframe设置为透明的,在页面中透露出一个按钮诱导用户点击 通过用于各种网站,使用iframe技术,图片点几进入一个其他网址,导致用户信息泄密
3.SQL注入
- 攻击者成功的向服务器提交恶意的SQL查询代码,程序在接收后错误的将攻击者的输入作为查询语句的一部分执行,导致原始的查询逻辑被改变,额外的执行了攻击者精心构造的恶意代码。
危害
防范
- 在代码层,不准出现sql语句
- 上线测试,需要使用sql自动注入工具进行所有的页面sql注入测试
- 在web输入参数处,对所有的参数做sql转义
4.DDOS
- DDOS不是一种攻击,而是一大类攻击的总称,它有几十张类型,新的攻击方法还不断发明出来,网站运行各个环节,都可以是攻击目标,只要把一个环节攻破,使得整个流程、跑不起来,就得到瘫痪服务的目的
- 比如遭遇cc攻击,最多的时候全世界大概20多个ip地址轮流发出请求,每个地址请求量在每秒200次-300次,我看访问日志的时候,就觉得请求像洪水一样涌来,一眨眼就是一大堆,几分钟的时候,日志文件的体积就大了100MB,
攻击方式
- SYN Flood:攻击通过目标发送具有欺骗性源ip地址的大量TCP 初始链接请求SYN数据包来利用TCP握手,目标机器相应每个链请求,然后等待握手中的最后一步,这一步从未发生过,耗尽了过程中的目标资源
- HTTP Flood:此攻击类似于同时在多个不同计算机上反复按web浏览器中的刷新,大量HTTP请求泛滥服务器,导致拒接服务
防御手段
- 备份网站不一定是全功能的,如果能做到全静态浏览,就能满足需求,最低限度应该可以显示公告,告诉用户,网站出看问题,正在全力抢修
- HTTP请求拦截: 硬件,服务器,防火墙 带宽扩容 CDN 提高犯罪成本
5. 常见的WEB安全防范
- 密码安全
- 人机验证 与 验证码
- HTTPS配置
- Session管理
- 浏览器安全控制