5种常见的Web安全问题

Web 安全一窥

我们先来看2个 Web 安全的例子:

Google 搜索 data leak 数据泄露

image.png

Steam 免费充值

image.png 其实安全问题“很常见”,任何一个安全问题都有可能危害用户、公司、程序员自身的利益。

常见的Web安全问题及防御措施

一、XSS

跨站脚本攻击,因为缩写和 CSS 重叠,所以只能叫 XSS。跨站脚本攻击是指攻击者想方设法将非法的非本站点HTML标签或 JavaScript插入网站运行的一种攻击。 image.png

特点

  • 通常难以从UI上感知(暗地执行脚本)
  • 窃取用户信息(cookie/token)
  • 绘制UI(例如弹窗),诱骗用户点击/填写表单

分类

1、存储型 XSS
  • 恶意脚本被存在数据库中
  • 访问页面 -> 读取数据 === 被攻击
  • 危害最大,对全部用户可见 image.png
2、反射型 XSS
  • 不涉及数据库
  • 从 URL 上攻击

image.png

3、DOM 型 XSS

image.png

4、Mutation-based XSS

image.png

防御措施

前端:

  • 不要将用户提交的内容直接渲染成 DOM 节点
  • 使用主流框架, 大部分默认防御XSS
  • google-closure-library 服务端(Node):
  • 不要相信用户提交的任何数据,对用户上传的DOM属性、style节点、script节点、iframe/frame节点等过滤
  • DOMPurify

二、CSRF

跨站请求伪造,是一种常见的Web攻击,它利用用户已登录的身份,在用户毫不知情的情况下,以用户的名义完成非法操作,窃取或修改敏感信息。

image.png

案例

Get请求: image.png

Post请求: image.png

防御措施

  • Origin+Referer, 只允许同源脚本执行(GET和HEAD请求在头部中不会加入Origin, 需要进行特殊处理)
  • 利用token并与用户信息绑定, 严格控制权限, 例如不允许用户A通过调用接口(如传入用户B的id)请求到用户B的数据
  • 利用X-Frame-Options, 禁止iframe透穿执行同源请求
  • 操作进行读写分离, GET和POST分离
  • Same Site Cookie, 禁止Cookie全局携带
  • 利用中间件统一处理CSRF攻击, 例如网关鉴证鉴权

三、Inject

Inject,是通过代码注入进行攻击。

分类

1、SQL 注入

image.png

image.png

2、OS 命令注入

image.png

防御措施

  • 对用户操作进行权限管控 image.png

四、DoS

通过某种方式(构造特定请求),导致服务器资源被显著消耗,来不及响应更多请求,导致请求挤压,进而雪崩效应。

分类

1、基于正则的ReDos

image.png

2、分布式DDos(Distributed Dos)

短时间内,来自大量僵尸设备的请求流量,服务器不能及时完成 全部请求,导致请求堆积,进而雪崩效应,无法响应新请求。

不搞复杂的,量大就完事儿了

比如SYN Flood,是靠海量的请求完成攻击。 image.png

防御措施

对于前端开发人员, 能做的东西很少,基本是运维同学来做。
ReDos防御 image.png

DDos防御 image.png

五、中间人攻击

中间人攻击是指攻击者与通讯的两端分别创建独立的联系,并交换其所收到的数据,使通讯的两端认为他们正在通过一个私密的连接与对方直接对话,但事实上整个会话都被攻击者完全控制。 image.png

防御措施

防御中间人攻击,则是使用 HTTPS 安全协议(HTTPS = HTTP + TLS)。 image.png 为什么 HTTPS 是可靠安全的呢?下面我们就具体来了解下 HTTPS。

HTTPS

HTTPS 特征
  1. 可靠性:安全加密
  2. 完整性:MAC 验证
  3. 不可抵赖性:数字签名
可靠性:安全加密

HTTPS的可靠性是 TLS 来保证的。它是现已弃用的安全套接字层(SSL)的继承者,是一种加密协议,设计用于在计算机网络上提供通信安全性。该协议被广泛应用于电子邮件、即时消息和IP语音等应用程序。

TLS握手分为两个过程,使用非对称密钥加密用于传输对称密钥来保证传输过程的安全性,之后使用对称密钥加密进行通信来保证通信过程的效率。

非对称加密: 浏览器向服务器提供一些加密套件的选项,服务器进行选择采用的套件,并返回一个证书,浏览器接收到证书之后进行校验,如果证书是ok的,就可以用双方协商好的加密算法算出一个sessionKey。

对称加密: 双方利用刚刚生成的sessionKey,对传输的内容进行加解密。

image.png

完整性:MAC 验证

image.png

不可抵赖性:数字签名
数字签名

签名的执行者拥有私钥和公钥,顾名思义,私钥自己藏好,公钥是公开可见的。 image.png 签名的流程,就是用私钥加密内容,拥有公钥的进行签名认证,看是否是对应私钥加密的。 image.png

数字证书

数字证书CA:Certificate Authority,是是由电子商务认证中心(以下简称为CA中心)所颁发的一种较为权威与公正的证书。

image.png

image.png 成也证书,败也证书
当签名算法不够健壮时,签名算法容易被破解,依旧会出现中间人攻击。现阶段,签名算法已经比较健壮,很难破解,所以 HTTPS 保证了不可抵赖性。 image.png

总结

  • 安全无小事,我们作为开发者一定要对安全问题引起重视,保证公司的财产安全、用户和我们自身的利益。
  • 使用的依赖(npm package,甚至是 NodeJS)可能成为最薄弱的一环,因此不要随便引入第三方依赖。
  • 攻击方式不断更新,我们要随时保持好的学习心态

CSDN大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享🎁

😝朋友们如果有需要全套《黑客&网络安全入门&进阶学习资源包》,可以扫描下方二维码免费领取

1️⃣零基础入门

① 学习路线

对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。

img

② 路线对应学习视频

同时每个成长路线对应的板块都有配套的视频提供:

img

因篇幅有限,仅展示部分资料

2️⃣视频配套资料&国内外网安书籍、文档

① 文档和书籍资料

img

② 黑客技术

img

因篇幅有限,仅展示部分资料

3️⃣网络安全源码合集+工具包

img

4️⃣网络安全面试题

面试题
上述所有资料 ⚡️ ,朋友们如果有需要全套 📦《网络安全入门+进阶学习资源包》,可以扫描下方二维码免费领取 🆓

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值