当前位置: 首页 > news >正文

从零学网络安全 - Web 核心技术与安全风险(一)

一、Web 的核心构成

1. Web 的定义

Web(万维网)是通过浏览器访问、以 HTTP/HTTPS 协议连接,能展示网页、图片、视频等内容的全球性信息服务系统。

2. Web 四大核心组成

Web 四⼤核⼼组成分别是:客户端、服务端、网络协议、Web 资源。

3. Web 服务器

Web 服务器(Web容器)是存储 Web 资源(如网页、图片),并通过 HTTP/HTTPS 协议接收客户端(浏览器)请求、返回对应资源的软件(或软硬件结合的系统),是连接用户与 Web 内容的核心枢纽。

4. 网页

网页通常由 HTML、CSS、JavaScript 等组成。

5. Web 应用访问流程

  1. ⽤户输⼊URL:⽤户在浏览器输⼊URL(⽹址),URL 经 DNS 域名解析,转化为服务器的真实 IP 地址。
  2. 建⽴⽹络连接:客户端与服务器的对应IP地址,通过 TCP 三次握⼿建⽴稳定的⽹络连接。
  3. HTTP 请求与响应:客户端基于建⽴的连接,发送 HTTP/HTTPS 请求报⽂。
  4. 服务器处理:服务器接收请求并解析,处理完成后返回对应的响应报⽂(包含 Web 资源)。
  5. 浏览器渲染:浏览器接收响应报⽂,解析并渲染内容,展示给⽤户。

6. Web 系统存在哪些漏洞?

Web 系统漏洞包括但不仅限于 SQL 注入漏洞、文件上传漏洞、命令执行漏洞、Web 服务器漏洞。

二、Web 服务器漏洞与安全配置

1. Web 服务器

三⼤主流Web服务器:Apache、Nginx、IIS。

维度 IIS(Internet Information Services) Nginx Apache HTTP Server
所属厂商/性质 微软开发,闭源商业软件 开源软件(Igor Sysoev 团队发起) 开源软件(Apache 软件基金会)
支持系统 仅支持 Windows 系统(如 WindowsServer) 跨平台 跨平台
核心特性 深度集成.NET 生态,自带图形化管理界面,支持 ASP.NET、ASP 等微软脚本 轻量高效,内存占用低,高并发处理能力强,擅长反向代理、负载均衡 模块化设计灵活,兼容性强,支持多种脚本(PHP、Perl 等)和扩展
典型应用场景 1. 部署ASP.NET、ASP 等微软技术栈项目 2. 企业内网 Windows 环境下的管理系统 1. 高流量网站(电商、视频平台)的静态资源服务 2. 需支撑万级以上并发连接的场景 1. 中小型网站(博客、企业官网)的动态内容服务 2. 对兼容性要求高、需适配多种脚本的项目
技术栈适配 优先适配.NET Framework/.NET Core、ASP 等 适配所有主流技术栈(无明显偏向) 适配 PHP、Perl、Python 等脚本语言

2. Apache 解析漏洞

漏洞成因

  • Apache 的多后缀解析规则缺陷:Apache 解析⽂件时,会从右向左识别⽂件后缀,直到识别到⾃⼰能解析的合法后缀为⽌,忽略中间不认识的后缀。例如:当访问 test.php.abc 时,Apache 不识别 .abc ,向左识别到 .php ,会将该⽂件当作 PHP 脚本执⾏。
  • 若配置了 AddHandler php5-script .php ,则所有包含 .php 后缀的⽂件都会被解析为 PHP。

安全⻛险

  • 攻击者可上传 xxx.php.xxx 这类畸形后缀⽂件,绕过⽹站的⽂件上传后缀⿊名单限制。
  • 上传的恶意 PHP 脚本被 Apache 解析执⾏,可直接获取服务器权限,写⼊后⻔、窃取数据、控制服务器。
  • 漏洞利⽤⻔槛极低,危害等级:⾼危。

防御⼿段

  • 修改 Apache 配置⽂件(httpd.conf),禁⽤多后缀解析,只允许纯后缀解析,添加配置: <FilesMatch .php$> SetHandler application/x-httpd-php ,仅识别纯 .php 后缀。
  • 上传防护:⽹站业务层严格校验上传⽂件,⽩名单允许后缀(如 jpg/png/pdf ),拒绝所有脚本后缀。
  • 权限控制:Web ⽬录禁⽌执⾏脚本权限,上传⽬录单独存放并设置为「只读不可执⾏」。
  • 升级版本:修复已知解析漏洞的版本漏洞。

3. Nginx 解析漏洞

漏洞成因

  • Nginx 默认配置下, xxx.php/xxx.jpg 这类URL,Nginx 会将其当作 xxx.php 脚本⽂件交给后端 PHP-FPM 解析执⾏。
  • Nginx 在处理 *. 配置时,若存在空格(如 fastcgi_split_path_info ^(.+ .php)(.*)$ ),会导致解析异常,畸形后缀⽂件被解析为 PHP。

安全⻛险

  • 同Apache解析漏洞,攻击者可上传畸形后缀的恶意PHP⽂件,绕过上传过滤.
  • 恶意脚本执⾏后,可完全控制服务器,窃取数据库、植⼊后⻔、删除⽂件.
  • Nginx 在反向代理架构中使⽤极⼴,漏洞利⽤后影响整个业务系统,危害等级:⾼危。

防御⼿段

  • 核⼼修复:修改 Nginx 的 php 解析配置,添加严格的正则匹配,杜绝畸形 URL 解析。
  • 禁⽌空字节解析:配置中添加 fastcgi_param PATH_INFO ""; 。
  • 上传⽬录防护:上传⽬录禁⽌ PHP 解析,单独配置 location /upload { deny all;} 。
  • 升级版本:修复已知解析漏洞的版本。

4. IIS 服务器漏洞

漏洞成因 (IIS6.0两大解析缺陷)

  • 分号截断解析:IIS6.0 解析⽂件时,会忽略⽂件名中「;」后⾯的所有内容。例如: test.asp;.jpg 会被解析为 test.asp 并执⾏ ASP 脚本。
  • 特殊后缀解析:IIS6.0 默认对 .asa、.cer、.cdx 这3个后缀的⽂件,当作 ASP 脚本解析执⾏,这3个后缀常被攻击者利⽤绕过上传过滤。

安全⻛险

  • 攻击者可上传 xxx.asp;.jpg 或 xxx.asa 这类⽂件,轻松绕过⽹站的上传⿊名单(如禁⽌ .asp 后缀)。
  • 恶意 ASP 脚本执⾏后,可完全控制 Windows 服务器,获取管理员权限、窃取数据库、植⼊后⻔。
  • IIS6.0在企业中仍⼤量使⽤,漏洞利⽤⽆⻔槛,危害等级:极⾼危。

防御⼿段

  • 版本升级:优先升级 IIS 版本⾄ 7.0及以上(IIS7.0+ 修复了该解析漏洞),是最根本的解决办法。
  • 禁⽤危险后缀解析:修改 IIS 的 MIME 类型,删除 .asa、.cer、.cdx 与 ASP 的映射关系,禁⽌解析这3个后缀。
  • 上传校验:业务层严格过滤⽂件名中的「;」特殊字符,禁⽌包含分号的⽂件上传。
  • 权限控制:上传⽬录设置为「只读」,禁⽌执⾏ ASP 脚本权限,单独存放上传⽂件。

5. 三大 Web 服务器通用安全防护原则

  • 版本及时升级:漏洞绝⼤多数出现在低版本中,官⽅发布新版本后⽴即升级,修复已知漏洞,这是最核⼼的防御⼿段。
  • 最⼩权限原则:Web 服务器的运⾏⽤户仅分配「最⼩必要权限」,禁⽌使⽤管理员 /root 权限运⾏,即使被攻击也能降低危害。
  • 严格⽂件上传过滤:业务层采⽤「⽩名单」校验上传⽂件后缀,禁⽌所有脚本后缀(php/asp/jsp),上传⽬录单独存放并禁⽤执⾏权限。
  • 隐藏版本信息:禁⽌泄露服务器版本、中间件版本,防⽌攻击者针对性利⽤版本漏洞。
  • 启⽤ HTTPS 加密:配置 SSL 证书,强制使⽤ HTTPS 传输,防⽌数据被劫持、篡改。
http://www.jsqmd.com/news/319009/

相关文章:

  • 计算机毕业设计 java 商品秒杀系统 基于 Java+SpringBoot 的高并发商品秒杀系统 商品限时秒杀在线管理平台的设计与实现
  • 社会网络仿真软件:NetLogo_(19).社会网络仿真的伦理与法律问题
  • 分治算法解题套路框架
  • python微信小程序的电影院购票售票系统
  • 实测降ai率工具深度横评:手把手教你降低ai率,实现免费降aigc
  • python旅游景点管理小程序
  • 2026年毕业生必备:实测最稳的免费降ai率工具,降低ai成功率高达99%的实测
  • 计算机毕业设计 java 陕商院餐厅管理系统 基于 Java 的陕商院智慧餐厅运营管理系统陕商院餐厅线上服务与管理系统的设计与实现
  • python日常生活垃圾分类微信小程序
  • 2026年论文降ai最新避坑指南:亲测靠谱的免费降ai率平台,手把手带你降低ai率不走弯路。
  • 计算机毕业设计 java 陕西理工大学返校管理系统 基于 Vue+SpringBoot 的陕西理工大学返校申请管理系统 陕西理工大学学生返校审核与信息管理系统设计实现
  • Go 实战版 教你如何用 Consul 设计一个可进化的微服务体系
  • python微信小程序的大学生兼职平台
  • 大数据领域Kafka的消息队列性能优化技巧
  • python微信小程序的大学生心理咨询系统
  • 社会网络仿真软件:NetLogo_(15).社会网络仿真结果解读与可视化
  • 计算机毕业设计 java 山西工程技术学院学生党员管理系统的设计和实现 山西工程技术学院学生党员信息化管理系统的设计与实现 基于 Java 的山西工程技术学院学生党员管理平台开发
  • 计算机毕业设计 java 山西工程技术学院学生请假管理系统的设计与实现 基于 Java 的山西工程技术学院学生请假在线管理系统 山西工程技术学院智能化学生请假管理系统的设计与实现
  • RH134简单知识点——第10章——控制启动过程
  • 如何构建面向行业的大数据解决方案?
  • 社会网络仿真软件:NetLogo_(15).社会网络仿真的优化与调试
  • 社会网络仿真软件:NetLogo_(14).社会网络仿真在环境科学中的应用
  • TDengine CLI (taos) 使用指南 —— Docker 本地开发实战 - 若
  • postman怎么获取上一个接口执行完后的参数
  • 深夜破防了!GPT-5.2 + Sora2 居然把我的外包私活给干没了?(附:多模态Agent逆袭指南)
  • 从爆红到实用:Moltbot(原 Clawdbot)使用初体验及本地部署指南
  • postman中的Tests,怎么获取返回的response中的stateCde
  • opencv计算机视觉--答题卡识别案例
  • Mobile库实战入门:几行代码快速集成通信功能
  • 社会网络仿真软件:NetLogo_(14).社会网络数据导入与导出