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⑤签名(防篡改)