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

1、XSS跨站脚本攻击

数据中包含脚本。前端

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

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

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

2、CSRF跨站请求伪造攻击

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

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

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

3、Cookie安全

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

一、Cookie和XSS
①XSS能够偷取Cookie
②http-only的Cookie不会被偷cookie

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

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

4、前端点击劫持

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

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

5、传输安全问题

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

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

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

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

6、密码安全

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

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

三、加密
md5 sha1 sha256

四、前端加密
前端加密意义有限,可是并非没有意义。好比保护用户隐私,防止猜想用户其余网站的密码等。

7、SQL注入

SQL注入和XSS攻击有点类似。写入数据库中的数据变成SQL语句逻辑。攻击者能够经过SQL命令攻击程序弱点。深层次的缘由是网站程序上容许SQL语句传递到数据库,而且直接和数据库交互。

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

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

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

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

8、上传问题

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

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

9、其余安全问题

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

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

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

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

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

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

相关文章
相关标签/搜索