Day03 Web应用OSS存储负载均衡CDN加速反向代理WAF防护部署影响 我的博客园笔记一、WebWAFWAFWeb应用防火墙是一种专门设计用于保护 Web 应用程序免受恶意攻击的安全设备它能够实时监控、过滤和拦截可能对网站造成危害的网络流量从而避免网站服务器被恶意入侵导致性能异常、数据泄露、服务中断这些问题。WAF 跟普通防火墙的区别作用层面不一样WAF 主要应用于 web 的应用层能够检测并且来阻止基于 HTTP 协议的网络攻击普通防火墙主要应用于 web 的 网络层主要是关注网络流量的源和目标地址以及端口还有协议类型防御对象不一样WAF 只在防御特定的 web 应用程序漏洞比如说 SQL 注入、XSS、RFI、命令注入等等普通防火墙主要是用于防御更广泛的网络威胁包括未授权的访问、DDos、Dos 还有恶意软件传播等等部署位置不一样WAF 通常部署在网络边界的内部临近 Web 服务器或者是作为负载均衡器的一部分普通防火墙通常部署在网络层的边缘相当于内外网之间的屏障核心影响防护能力提升它会直接拦截常规的Web攻击导致扫描工具失效甚至可能触发动态封禁策略封锁测试IP。**绕过方式**利用WAF与后端服务器对HTTP协议解析的不一致分块传输、参数污染等找WAF规则没覆盖的payload形式、请求方法、编码方式。例如以WebGoat为靶站、雷池WAF为防护检验WAF效果的一种常用方法是尝试绕过其规则即所谓的WAF Bypass。二、WebCDNCDN的全称是 Content Delivery Network即内容分发网络。CDN 是构建在网络之上的内容分发网络依靠部署在各地的边缘服务器通过中心平台的负载均衡、内容分发、调度等功能模块使用户就近获取所需内容降低网络拥塞提高用户访问响应速度和命中率。CDN 的关键技术主要有内容存储和分发技术。CDN 的基本原理广泛采用各种缓存服务器将这些缓存服务器分布到用户访问相对集中的地区或网络中在用户访问网站时利用全局负载技术将用户的访问指向距离最近的工作正常的缓存服务器上由缓存服务器直接响应用户请求。CDN 的目标加速访问但同时也隐藏了源站服务器的真实 IP 地址。核心影响源站隐蔽性增强主要挑战在于信息收集可能出错因为扫描到的 IP 是 CDN 节点而非真正的源站真实服务器的 IP 地址导致收集的信息不准确。攻击利用方式利用部分子域名、邮件服务、历史 DNS 中未配置 CDN 的“暴露面不一致”寻找没有经过 CDN 的入口如子域名、邮件服务、非标准端口。用超级 ping 工具判断 CDN不同地区 IP 不一致 → 有 CDN一致 → 无 CDN。三、WebOSS**对象存储服务 (OSS) **它是一种专门存放图片、视频、文档等非结构化数据的云存储服务。它就像云上的无限容量仓库自带多重备份你可以随时通过网络存取文件无需关心文件如何摆放或仓库如何维护。典型场景网站静态资源托管、云盘应用和音视频归档等核心影响优点它从根本上“堵住了”传统的文件上传漏洞。因为文件上传后Web服务器不解析无法获得Webshell。影响文件上传类漏洞即使你上传了一个后门文件它也不能执行只能打开或者下载下来缺点引入了全新的、高风险攻击面。一旦控制OSS的AccessKey泄露可能导致整个存储桶的数据泄露甚至被接管OSS 风险源于开发者配置不当Bucket公有读写、AK/SK硬编码而非OSS本身缺陷。攻击利用方式找泄露的AK/SK、错误配置的Bucket权限、可预测的文件名。四、Web反向代理正向代理为客户端服务客户端主动通过代理访问目标无代理时可能无法直接访问。反向代理为服务端服务接收客户端请求后转发给内部后端服务器后端不直接对外暴露因此“不主动则不可达”。核心影响隐藏真实服务器攻击者接触的只是代理节点而非真实的应用服务器。反向代理风险路径遍历、请求走私、SSRF 等这些漏洞源于代理配置或转发逻辑的缺陷。攻击利用方式寻找代理转发时未严格过滤的特殊请求如../及其编码形式%2e%2e%2f、HTTP 请求走私等。五、Web负载均衡负载均衡作用统一入口对外提供唯一的访问入口用户只需访问同一域名无需关心后端服务器数量流量分发根据规则将请求分配给后端多台服务器分摊压力提高并发处理能力健康监测实时监测后端服务器健康状态自动剔除故障服务器保证服务可用性SSL 卸载统一处理 HTTPS 加密解密减轻后端服务器负担常见的负载均衡器1、七层负载均衡应用层HTTP/HTTPS工作在应用层可以根据 HTTP 请求的内容比如 URL 路径Cookie请求头等进行转发。特点最灵活成本最低但是单机只能支撑几万到十几万的并发适合中小型网站1 Nginx 负载均衡配置 Nginx 负载均衡#定义负载设置 upstream fzjh{server 120.26.70.72:80 weight1;server 47.75.212.155:80 weight2;server 78.54.212.155:80 weight3;}#定义访问路径 访问策略 location /{proxy_passhttp://fzjh/;}工作原理 配置 Nginx由 3 台服务器组成了一个集群Nginx 会自动把收到的请求分配给它们2DNS 负载均衡工作原理在用户浏览器查询域名对应的 IP 地址时DNS 服务器会根据策略返回不同的服务器 IP从而实现流量分配优点实现简单成本低适合做全球流量分配缺点不够灵活有缓存改了配置不能立即生效2、四层负载均衡传输层TCP/UDP工作在传输层只根据 IP 地址和端口号进行转发不关心 HTTP 请求的具体内容特点性能很高能支撑几十万甚至上百万并发常用的实现方案是 LVSLinux 虚拟服务器它通过修改网络数据包的地址信息把请求转发到不同的服务器速度极快适用于大型网站3、硬件负载均衡F5 等专业设备性能极高但价格昂贵主要用于大型企业负载均衡算法1、静态算法按照固定的规则分配可以分为1轮询Round Robin原理按顺序将请求依次分配给每台服务器循环往复。例如请求1到A请求2到B请求3到C然后请求4再到A。适用场景后端服务器性能相近、每个请求处理成本差不多的场景如简单的Web应用。2加权轮询Weighted Round Robin原理轮询的升级版为每台服务器设置权重如高性能服务器权重设为3低性能设为1按权重比例分配请求让性能高的机器多承担些压力。适用场景服务器配置存在差异的集群最常见的静态策略。3源地址哈希IP Hash原理对客户端IP地址计算哈希值再将结果与服务器数量取模决定由哪台服务器处理。同一IP的请求会始终落到同一台服务器适用场景需要会话保持Session Sticky的场景比如用户登录状态存储在本地内存中的老式应用。但要注意后端服务器变化如扩缩容会导致路由结果大变。4一致性哈希原理优化了源地址哈希的扩缩容问题。将服务器和请求哈希到一个虚拟圆环上请求找到顺时针最近的服务器节点。当服务器增减时只影响圆环上相邻的一小段区域。适用场景分布式缓存系统如Redis Cluster Memcached能极大减少服务器变化时缓存失效的“雪崩”风险。2、动态算法会根据服务器的实时状态来分配请求更加灵活1最少连接数Least Connections原理将新请求分配给当前活动连接数最少的服务器。负载均衡器会实时跟踪每台服务器的连接数。适用场景请求处理时间长短不一的场景如有长轮询、上传下载、API调用不同数据库。例如A服务器有10个长连接任务处理慢B服务器只有2个短连接任务处理快新请求就会被给到B避免A过度积压。2最短响应时间Least Response Time原理选择响应时间最短通常是结合了连接数和平均响应延时的服务器。这是最智能的算法之一。适用场景对延迟敏感、后端性能波动较大的业务能自动避开响应变慢的问题机器。核心影响增加测试的复杂性和不确定性。由于存在多个后端服务器测试过程中可能会接触到不同节点导致结果不一致。负载均衡风险多节点间的补丁版本、安全配置、缓存状态可能不一致攻击者可利用最薄弱的节点突破整体防线。攻击利用方式探测并锁定安全水位最低的后端节点如补丁未更新、WAF 规则未同步专门对其发起攻击。常用方法包括利用缓存差异识别不同节点、通过修改请求如 Cookie、来源 IP绕过会话保持策略从而访问所有后端节点。