可以简单看看这两个视频吧,我觉得讲解还是很很ok的讷
这里简单总结一些两个的类型:
一个是传统的web安全:cookie 安全 | CSRF 安全 | XSS 安全
在分布式和微服务的当下,现在的安全防护变味了:前后端 + 中间件 + 服务间的复杂链路
核心含有:ORM注入,URL 跳转,CSP,DDOS,IP黑白名单
微服务特有的服务间认证、流量治理、敏感数据防护
ORM 注入攻击
核心风险:比传统 SQL 注入更隐蔽,微服务中多服务独立连库,若某服务 ORM 使用不当(如拼接 SQL、未做参数绑定),攻击者可通过接口注入,甚至跨服务通过数据同步 / 调用渗透到核心库;还有 NoSQL 注入(Mongo/Redis),分布式中缓存 / 文档库也是重灾区。
防护工具 / 策略:
基础:主流 ORM 框架原生防护(MyBatis 的 #{}、JPA 的参数绑定、GORM 的预编译),杜绝手写拼接 SQL;
检测:静态代码扫描工具(SonarQube、FindBugs)、动态应用安全测试 DAST(OWASP ZAP、Burp Suite),CI/CD 流水线嵌入扫描,阻断带注入风险的代码上线;
兜底:数据库侧防护(MySQL 的权限最小化、开启慢查询 / 审计日志,Redis 设置密码 + 禁止外网访问);
进阶:数据库防火墙(阿里云 RDS 防火墙、华为云 DBFirewall),精准拦截注入语句。
分布式落地关键:统一微服务的 ORM 使用规范,所有服务连库均走配置中心统一配置,禁止硬编码,数据库账号按服务做最小权限分配(如订单服务仅能操作订单库,无删库 / 跨库权限)
URL跳转漏洞
核心风险:传统 Web 只有一个前端入口,分布式中网关(如 Nginx/APISIX)、各微服务(如登录服务、支付服务)都可能有 URL 跳转功能(如登录后跳回原页面、第三方授权回调),若未做校验,攻击者可构造恶意跳转链接,诱导用户跳转到钓鱼网站,窃取账号 / 密码。
防护工具 / 策略:
代码层:白名单机制(硬编码允许跳转的域名,如仅允许跳转到自身域名、可信第三方域名),禁止使用用户传入的完整 URL 做跳转,仅解析 path 部分拼接;
网关层:网关统一拦截(APISIX/Nginx/Zuul 配置 URL 跳转白名单,过滤恶意跳转参数,如 redirect_uri、url);
前端层:CSP 策略配合(下文讲),限制页面的跳转源;
辅助:添加跳转提示(如 “即将跳转到外部网站,是否继续?”),降低用户被骗概率。
分布式落地关键:网关做统一的 URL 跳转校验,所有服务的跳转请求均经过网关,避免各服务各自为战,白名单通过配置中心动态下发,方便全网更新。
内容安全CSP
核心风险:传统 Web 只需给主域名配置 CSP,分布式中多前端应用(微前端)、多子域名、多静态资源 CDN,若 CSP 配置混乱,不仅防不住 XSS,还会导致页面资源加载失败(如微前端的子应用、CDN 的静态资源被拦截)。
防护工具 / 策略:
配置方式:HTTP 响应头配置(推荐,比 meta 标签更灵活),支持动态修改;
核心指令:default-src(默认资源加载源)、script-src(脚本加载源,核心防 XSS,指定仅允许从可信域名 / CDN 加载脚本,禁止 inline-script/eval)、img-src(图片源)、frame-src(iframe 源,防嵌套钓鱼);
工具:CSP 生成器(OWASP CSP Generator)、CSP 监控工具(Sentry、浏览器开发者工具的 Console 面板,排查被拦截的资源);
分布式落地关键:网关统一配置 CSP 响应头,微前端的主应用 / 子应用、各服务的前端页面共用一套 CSP 基础规则,针对特殊服务(如支付、登录)做指令升级(如更严格的 script-src);CDN 域名统一加入白名单,避免跨 CDN 的资源拦截。
DDOS 攻击
核心风险:传统 Web 攻击单节点,分布式中微服务依赖链路长(如用户→网关→认证服务→业务服务→数据库),若某核心服务(如网关、认证服务)被 DDoS 攻击,会导致整个链路阻塞,甚至引发服务雪崩;且分布式下攻击者可针对多服务并行攻击,防护难度更高。
防护工具 / 策略:分基础设施层(云厂商兜底)、网关层(流量清洗)、服务层(限流降级)三层防护,缺一不可:
基础设施层(核心):云厂商 DDoS 防护(阿里云 DDoS 高防、腾讯云大禹、百度云大禹),防护大流量攻击(如 SYN 洪水、UDP 洪水),清洗异常流量;
网关层:API 网关限流(APISIX、Nginx、Spring Cloud Gateway),配置基于 IP / 令牌桶 / 漏桶的限流规则(如单 IP 每秒 100 请求、单接口每秒 1000 请求),拦截高频恶意请求;
服务层:微服务框架原生限流(Sentinel、Hystrix、Resilience4j),针对服务间调用做接口限流 + 降级(如某服务被攻击,直接返回降级结果,避免拖垮上游服务);
辅助:IP 黑白名单(网关 / 服务层均可配置),快速拦截已知恶意 IP,下文单独讲;
分布式落地关键:云厂商高防 + 网关限流 + 服务限流三层联动,核心服务(网关、认证、支付)配置更严格的限流规则;利用微服务的服务发现与熔断,若某服务被攻击,自动熔断该服务的调用,避免雪崩。
web 安全
随着互联网的快速发展,信息安全问题就成为每一个企业十分关注的焦点问题之一了吧,此时在客户端的前端就是引发安全的高频的触发场景吧
常见的安全问题有
XSS , CSRF ,网络劫持,hybird API 安全
解决方案就是引入了新的概念:CSP,same-site,cookies 来实现新增安全问题吧
核心问题讷就是:代码层面、架构层面、运维层面等三个维度来实现对应的考量吧
总结就是
跨站脚本攻击 XSS
跨站请求伪造 CSRF
点击劫持点击
HTTP 传输安全
第三方依赖完全
XSS 安全

XSS 概念
Cross-Site-Scripting 跨站脚本攻击就是常说的 XSS 吧,是一种脚本注入攻击吧,攻击者通过向目标网站注入恶意执行脚本,使其在用户的浏览器上进行运行
攻击者可以获取得到用户的铭感信息例如:cookie sessionid 进而来危害数据安全吧
由于攻击者可以通过脚本来直接获取得到用户的一些铭感信息,就可以利用恶意代码的形式来向目标服务器获取得到对应的资源,从而造成危害吧
XSS 攻击原理
/**
* 当把这种数据从客户端上传给服务端的时候
* 核心 API 就是: innerHTML textContent
* 以及从服务端获取得到这种数据,利用纯 HTML 的形式进行渲染的话,由于原本引用的图片链接就是一个 error 的,此时就会触发 onError 事件
* 从而造成攻击:
* 1. 纯 HTML 的渲染方式是
* container.innerHTML = data.imgContent;
* container.innerHTML = data.scriptContent;
* 2. vue 的渲染方式是
* <div v-html="data.imgContent"></div>
* <div v-html="data.scriptContent"></div>
* 3. react 的渲染方式是
* <div dangerouslySetInnerHTML={{ __html: data.imgContent }} />
* <div dangerouslySetInnerHTML={{ __html: data.scriptContent }} />
* 防护方式就是:
* 1. 分析这些数据的来源,一般来源于用户的输入,此时就需要对用户的输入的数据进行数据清洗
* 2. 对于内容的渲染模式处理,避免上面的代码书写,除非必要,否则不建议使用
* 3. 对于脚本内容,建议使用转义字符进行处理,避免直接渲染到页面上
* */
const data = {
imgContent: `<img src="一个错误的图片.png" onError='alert('图片加载失败')" />`,
scriptContent: `<script src="错误的外部资源.js" onError='alert('脚本加载失败')'></script>`,
}
XSS 危害
获取cookie信息,安全记录以及进行钓鱼实现,未授权操作,获取页面操作,获取本地存储数据,劫持前端逻辑,发送网络请求,获取网站任意数据,偷取用户资料,欺骗用户等操作吧
XSS 分类
反射型XSS:url 的形式
存储型XSS:数据持久化
DOM XSS:纯前端类型的DOM操作
XSS 反射型攻击
攻击者构造出特殊的 URL 的形式,启动包含有而已的执行代码吧
用户打开带有恶意代码的 URL 的时候,网站服务器将恶意的代码从 URL 中获取得到,拼接到 HTML 中返回给浏览器
用户浏览器接受到响应后解析执行,混在其中的恶意代码也就执行了
恶意代码窃取用户数据并发送到攻击者的网站,获取冒充用户的行为,调用目标网站则执行攻击者指定的操作吧
/**
* 反射型 XSS 攻击
*
* vue
* <div v-html="$route.query.content"></div>
* react
* <div dangerouslySetInnerHTML={{ __html: $route.query.content }} />
*/
const data = {
loadUrl: 'https://example.com?content=<script>alert("XSS")</script>',
}出现的常见就是在服务端渲染的中的吧,因为核心是后端来进行对应的操作吧,以及存储型也是后端 server 需要预防的讷
在后端模板引擎中的常见吧:express 中的 art-template 吧
XSS 存储型攻击
将恶意代码提交到目标网站的数据库中
用户打开目标网站的时候,网站服务器将恶意代码从数据库中取出,拼接到 html 中返回给浏览器
用户浏览器接受到响应后的数据进行解析渲染,混在恶意代码中被执行吧
恶意代码通过一些 api 来窃取用户数据并发送到攻击者的网站,冒充用户行为,调用目标网站接口执行攻击指定的操作吧
XSS DOM类型
攻击者构造出特殊的URL,其中包含恶意代码
用户打开带有恶意代码的 URL
用户浏览器接受响应后解析执行,前端 javascript 执行这些恶意代码吧
XSS 攻击注入点
在 HTML 中通过内嵌的文本,恶意内容使用 script 标签的形式引入
在内敛的 javascript 中,拼接的数据突破了基本的原则
在标签属性中,恶意内容包含引号,从而突破原生的一些限制吧,字符串,变量,方法名等吧
在标签 href src 等属性中,包含了 javascript 的可执行代码吧
在 onload onerror onclick 事件中注入了可执行运行的代码吧
在 style 属性和 标签中,包含了类型的一些 bgc-image 的引入
在 style 和 标签中,包含了 expression 这些 css 表达式吧
上面的这些都是会导致对应的XSS的攻击的讷
XSS 防御
攻击者提交代码阶段防御
浏览器执行阶段防御
输入过滤
用来提交信息的时候进行对应的前端输入过滤的操作,然后提交给后端进行存储
后端进行存储数据入库的时候,进行数据的二次过滤,实现二次校验的过滤实现,白名单机制来实现对应的操作吧
前端预防就是对内容进行合法性校验实现对应的html拼接渲染
对于后端的话就是只用一些库来实现过滤渲染实现:dot | js-xss | 通过转义的形式实现我们的操作吧
CSP 的内容安全协议:核心配置就是:meta 标签配置或者说通过配置http头部中进行操作吧
CSRF 安全
CSRF cross-site request forgery 跨站请求伪造,也是单点攻击 one click attack 或者说是 session riding 吧,是一种对于网站的恶意使用的情况吧
CSRF 原理
攻击者通过进入第三方网站,在第三方网站中,向攻击者网站发送跨站请求,利用受害者在被攻击网站获取的注册凭证绕开后台的用户校验,达到冒充用户被攻击的网站执行某些操作的目的吧


CSRF 攻击分类
GET 请求类型的 CSRF
最常见的就是 img video audio 这样的静态资源请求的方式的来操作吧
POST 请求类型的 CSRF
form 表单类型最为常见吧
CSRF 防御机制
同源检测来实现吧
通过 origin | referer 等请求头校验来实现同源检测的实现吧
origin header 的话就是通过我们的:302 重定向来操作的讷
cookie 安全
samesite
secure
httponly
path
domain
等字段来进行安全性的实践吧
以及还可能通过我们的 cors 设置来实现讷
以及 http 的传输安全的设置吧,核心就是设置为 https 加密一下吧
原本的 http 是明文传输的,此时在传输阶段中进行 https 的密文传输吧,对称加密和非对称加密来进行操作讷,核心流程的话看看我的另一篇文章吧
第三方库解决
npm audit 来检测依赖包的安全性
sonarqube 来校验仓库的安全性吧
snyk 定期来做操作吧