web安全问题分析与防御总结

一、XSS跨站脚本攻击

数据中包含脚本。

1、xss分类
①反射型
通过url参数注入,形成一个有毒的链接。
②存储型
这段脚本经过数据库。

2、xss攻击的注入点
①HTML节点内容
节点中包含<script></script>标签
②HTML属性
某个属性被"或者'提前关闭,攻击者加上另外一些可运行脚本的属性。
③JavaScript代码
字符串提前关闭。
④富文本
本身就是一段HTML,可能出现很多种注入方式。

3、XSS攻击防御
①对于HTML节点内容、HTML属性、JavaScript代码类型攻击使用字符串转义
②富文本的防御使用白名单
③CSP

二、CSRF跨站请求伪造攻击

CSRF是让用户在不知情的情况,冒用其身份发起了一个请求。
比如,点击不知情链接,利用图片url.src发送请求。

1、CSRF攻击原理
①用户1登录A网站
②A网站确认身份
③用户1没有退出登录,并且使用同一浏览器打开一个不知情的B网站。
④B网站页面向A网站发起请求(携带A网站的cookie)

2、CSRF攻击防御
①same-site属性
禁止第三方网站携带cookie
②验证码
使得必须访问A网站的前端,才能获取到验证码。
③token
验证码有时候会影响用户体验。使用token,服务器端发送一个随机的token到客户端,客户端发送请求带上token。
⑤referer
禁止来自第三方网站的请求。

三、Cookie安全

比如Cookie中存放了用户ID,这个用户ID就面临着被篡改或者被盗取的风险。

1、Cookie和XSS
①XSS可以偷取Cookie
②http-only的Cookie不会被偷

2、Cookie和CSRF
①CSRF利用了用户Cookie
②攻击站点无法读取Cookies
③最好能阻止第三方使用Cookies(same-site)

3、Cookie安全防御
①用户ID+签名
利用签名验证用户ID是否被篡改。
②用户ID加密(srypt)
服务端进行加密后再传输,收到请求再解密。
③SessionId
服务端使用session保存用户ID,传送SessionId给客户端。
④http-only
防止XSS攻击盗取Cookie。
④same-site
防止CSRF利用了用户Cookie。
⑤secure
只有HTTPS才可以读取Cookie,保证Cookie在传输过程中的安全。

四、前端点击劫持

点击劫持原理本质就是利用iframe实现了障眼法。用户真正点击的其实不是用户所看到的东西。真正的东西把透明度设置成了0,用户看不到。这样可以诱导用户在不知情的情况下完成某些操作。

1、点击劫持的防御
①禁止内嵌iframe(JavaScript禁止内嵌 、sandbox)
②其他辅助:加验证码

五、传输安全问题

HTTP是明文传输,所以在传输过程中有可能被窃听和篡改。

1、HTTP窃听
①用户名密码
②传输敏感信息
③个人资料(银行卡……)

2、HTTP篡改
①插入广告
②重定向网站
③无法防御XSS和CSRF
④运营商和局域网劫持

3、传输安全问题防御
①HTTPS
以安全为目标的HTTP通道,简单讲是HTTP的安全版。
安全保障:TLS(SSL)加密+CA证书。

六、密码安全

1、密码泄露
①数据库被偷
②服务器入侵
③通讯被窃听
④内部人员泄露数据

2、密码存储
①严禁明文存储(防泄露)
②单项变换(防泄漏)
③变换复杂度要求(防猜解)
④密码复杂度要求(防猜解)
⑤加盐(防猜解)

3、加密
md5 sha1 sha256

4、前端加密
前端加密意义有限,但是并不是没有意义。比如保护用户隐私,防止猜测用户其他网站的密码等。

七、SQL注入

SQL注入和XSS攻击有点相似。写入数据库中的数据变成SQL语句逻辑。攻击者可以通过SQL命令攻击程序弱点。深层次的原因是网站程序上允许SQL语句传递到数据库,并且直接和数据库交互。

1、危害
①猜解密码(工具)
②获取数据
③删库删表
......

2、SQL注入的防御
①关闭错误输出
错误信息输出到前端会让黑客更加准确的定位错误。
②检查数据类型,参数。
parseInt()
③对数据进行转义。
npm install mysql
④使用参数化查询。
npm install mysql2
⑤使用ORM(对象关系映射)
npm install sequelize

3、NoSQL注入
NoSQL(不仅仅是NoSQL)数据存储系统已经非常流行,因为它们易扩展且易于使用。尽管NoSQL数据存储的新的数据模型和查询格式令原来的攻击不再有效了,但攻击者却可以寻找新的契机插入恶意代码。

1、NoSQL防御
①检查数据类型
②类型转换
③写完整条件(验证对象内容)

八、上传问题

1、过程
①上传文件
②再次访问上传的文件
③上传的文件被当成程序解析

2、上传问题防御
①限制上传后缀
②文件类型检查
③文件内容检查(文件头信息)
④程序输出(读,写,性能有影响)
⑤权限控制-可写可执行互斥

九、其他安全问题

1、拒绝服务DOS
①模拟正常用户
②大量占用服务器资源(上线)
③系统崩溃

2、分布式拒绝服务攻击DDOS
①流量可达几十到上百G
②分布式(肉鸡,代理)
③难防御

3、DOS防御
①防火墙
②交换机、路由器防御
③流量清洗
④高防IP
⑤避免重逻辑业务
⑥快速失败快速返回
⑦防雪崩机制
......

4、重放攻击
重放攻击(Replay Attacks)又称重播攻击、回放攻击,是指攻击者发送一个目的主机已接收过的包,来达到欺骗系统的目的,主要用于身份认证过程,破坏认证的正确性。

后果:
①用户被多次消费
②用户登录态被盗取
③多次抽奖
......

防御:
①加密(HTTPS)
②时间戳
③token
④nonce
⑤签名(防篡改)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值