一、引言
Web 服务器与 Web 应用是网站安全防护的核心层,属于软考信息安全工程师考试中 "应用安全" 与 "网络安全" 模块的重点考点,历年真题中相关知识点占比约 15%。Web 服务器技术起源于 1991 年 CERN 开发的世界上第一台 HTTP 服务器,1995 年 Apache HTTP Server 发布后逐步成为开源领域主流,同年微软推出 IIS 1.0 形成 Windows 平台 Web 服务器的标准方案。2004 年 OWASP(开放式 Web 应用安全项目)首次发布 Top 10 漏洞榜单,成为全球 Web 应用安全的事实标准。本文将从 Web 服务器安全配置、Web 应用漏洞防护两个维度展开,覆盖软考要求的核心配置方法、漏洞原理、防护方案三类核心知识点。
二、Apache Web 服务器安全实战
(一)Apache 核心安全威胁
Apache 的安全威胁可分为七层攻击面,符合软考 "纵深防御" 考点的分层思想:
- 软件程序漏洞:包括核心代码的缓冲区溢出、路径解析漏洞等,典型案例为 2021 年 Apache Log4j2 远程代码执行漏洞,CVSS 评分 10 分,全球超 30% 的 Java 类 Web 应用受影响。
- 配置漏洞:包含目录遍历、HTTP 方法滥用、敏感信息泄露三类,例如错误开启目录浏览功能会直接暴露站点源码与配置文件。
- 安全机制威胁:主要为弱口令、认证绕过,常见于后台管理页未配置强认证规则的场景。
- 应用程序漏洞:服务器层缺乏防护时,SQL 注入、XSS 等应用层漏洞可直接渗透至后端系统。
- 通信威胁:默认 HTTP 明文传输会导致账号密码、敏感数据被中间人窃听。
- 内容威胁:攻击者获得服务器写入权限后会实施网页篡改、黑页植入等攻击。
- 拒绝服务威胁:包括连接耗尽型 DoS、流量型 DDoS,通过占用服务器连接资源导致服务不可用。
Apache Web 服务器七层攻击面示意图
(二)Apache 核心安全机制与增强方案
Apache 采用模块化架构设计,安全配置需遵循 "最小权限、最小攻击面" 原则,核心安全机制及增强方法如下:
- 模块化管理:默认安装的 Apache 通常启用超过 15 个功能模块,需禁用非必需模块,例如 mod_cgi、mod_info、mod_status 等非业务必需模块,可减少 60% 以上的已知漏洞攻击面。
- 认证与访问控制:支持两种配置方式,主配置文件 httpd.conf 适用于全局规则,.htaccess 适用于目录级精细控制。典型配置规则为
Order deny,allow; Deny from all; Allow from 192.168.1.0/24,可实现后台管理目录仅允许内网 IP 访问。 - 抗拒绝服务配置:调整 httpd.conf 核心参数,Timeout 设置为 10-30 秒减少半开连接占用,MaxClients 根据服务器内存配置(每 Apache 进程约占用 2M 内存,8G 内存服务器建议设置为 2048),配合 mod_limitipconn 模块限制单 IP 最大连接数为 20,可抵御普通连接耗尽型 DoS 攻击。
- 日志审计:access.log 记录所有访问请求,包含源 IP、请求方法、URL、状态码等字段;error.log 记录错误请求与服务异常信息,两类日志需配置定期备份与异地存储,满足等级保护 2.0 "审计日志留存不少于 6 个月" 的要求。
(三)Apache 八大安全增强实践(软考高频考点)
- 定期安装安全补丁:需关注 Apache 官方安全公告,高危漏洞修复响应时间不得超过 72 小时,符合《网络安全法》"及时处置安全漏洞" 的合规要求。
- 启用.htaccess 细粒度防护:针对敏感目录配置独立认证规则,避免全局配置的权限溢出。
- 低权限运行:创建专属 apache 用户与用户组,禁止使用 root 权限运行服务,即使服务被攻陷也无法获得操作系统高权限。
- 隐藏版本信息:在 httpd.conf 中配置
ServerTokens Prod; ServerSignature Off,禁止在响应头、错误页面中返回 Apache 版本号、操作系统类型等敏感信息,减少攻击者的漏洞利用线索。 - 禁用目录浏览:删除配置中所有
Indexes参数,避免目录无默认首页时直接列出所有文件。 - 操作系统权限加固:站点目录权限设置为 750,文件权限设置为 640,仅允许 Apache 用户读取,禁止写入与执行权限。
- 删除默认内容:移除安装包自带的示例文件、源码样例、CGI 测试脚本,避免默认漏洞被利用。
- 部署第三方安全模块:启用 mod_security Web 应用防火墙模块,配置常见攻击规则,可拦截 90% 以上的已知应用层攻击。
Apache 安全增强配置项对照表
三、IIS Web 服务器安全实战
(一)IIS 核心安全威胁
IIS 是 Windows 服务器的内置 Web 服务,其安全威胁具有平台相关性,软考中常与 Windows 系统安全结合考查:
- 非授权访问:包括匿名访问权限过大、弱口令导致的后台登录绕过,典型案例为 IIS 6.0 的匿名用户默认具备站点目录写入权限,可直接上传 Webshell。
- 蠕虫利用:历史上 Code Red、Nimda 等蠕虫均通过 IIS 漏洞传播,曾导致全球数十万服务器被感染。
- 网页篡改:Windows 文件权限配置错误时,攻击者可直接篡改站点首页。
- 拒绝服务攻击:IIS 处理畸形 HTTP 请求时易触发资源耗尽,典型漏洞为 CVE-2021-31166,可导致 IIS 服务崩溃。
- CVE 漏洞:每年平均有 10-15 个 IIS 相关高危漏洞披露,覆盖远程代码执行、溢出、XSS 等多个类型。
(二)IIS 安全机制与增强方案
IIS 与 Windows 系统安全深度集成,核心安全增强措施包含五类:
- 认证体系:支持匿名认证、基本认证、证书认证、Windows 集成认证四种模式,业务系统推荐使用证书认证或 Windows 集成认证,避免基本认证的明文传输风险。
- 访问控制体系:包含请求过滤、URL 授权、IP 限制、文件授权四层,可实现从 IP 到具体文件的全链路权限控制。
- 五大安全增强实践:
(1)及时安装系统补丁:通过 WSUS 服务实现 IIS 相关补丁的自动推送,高危漏洞需在 24 小时内修复。
(2)启用动态 IP 限制:配置单 IP 最大并发连接数为 50,请求频率超过每秒 10 次则临时封禁 IP,可有效抵御暴力破解与 CC 攻击。
(3)启用 URLScan 工具:配置规则过滤包含../、sqlmap、<script>等特征的恶意请求,阻断注入、XSS 等攻击的探测行为。
(4)启用 IIS 内置 WAF 模块:配置 SQL 注入、XSS、路径遍历等攻击规则,拦截率可达 95% 以上。
(5)启用 SSL/HSTS:配置 HTTPS 证书,添加 HSTS 响应头Strict-Transport-Security: max-age=31536000,强制客户端使用 HTTPS 通信,防范降级攻击与中间人窃听。
IIS 安全防护架构图
四、OWASP Top 10 核心 Web 应用漏洞与防护(软考必考知识点)
OWASP Top 10 是 Web 应用安全的核心标准,软考中要求掌握 2017 版与 2021 版的差异,核心漏洞及防护方案如下:
(一)核心漏洞类型
- A1 注入漏洞:包含 SQL 注入、NoSQL 注入、OS 命令注入,本质是未过滤用户输入,导致攻击者构造的恶意数据被作为命令执行。典型案例为 2019 年某高校教务系统 SQL 注入漏洞,导致数十万学生个人信息泄露。
- A2 失效的身份认证:包含会话令牌泄露、弱口令、无登录失败次数限制、会话超时设置不合理等,是内网系统最常见的入侵入口。
- A3 敏感数据泄露:包含传输层明文、存储层未加密两类,例如密码明文存储、HTTP 传输身份证号等,均违反《网络安全法》对个人信息保护的要求。
- A5 失效的访问控制:包含水平越权(访问同权限其他用户数据)、垂直越权(普通用户访问管理员功能),80% 的业务系统存在此类漏洞。
- A6 安全配置错误:包含不安全默认配置、错误页面泄露系统信息、多余功能开启等,是最容易被忽略的基础风险。
- A7 跨站脚本(XSS):分为反射型、存储型、DOM 型三类,攻击者可通过注入恶意脚本窃取用户 Cookie、伪造操作请求。
OWASP Top 10 2017 核心漏洞风险等级分布图
(二)重点漏洞防护方案
- SQL 注入防护:
(1)根本措施:使用参数化查询(预编译语句),禁止拼接 SQL 字符串,Java 中使用 PreparedStatement、Python 中使用 pymysql 的参数化接口均可完全避免注入风险。
(2)权限最小化:Web 应用数据库账号仅授予 SELECT、INSERT、UPDATE 必要权限,禁止 DROP、ALTER 等高危权限,避免注入漏洞发生时整个数据库被删除。
(3)辅助防护:部署数据库防火墙或 WAF,拦截包含 union、select、drop 等特征的恶意请求。
(4)信息屏蔽:自定义错误页面,禁止返回数据库表名、字段名等详细错误信息。 - 文件上传漏洞防护:
(1)核心原则:上传目录设置为无脚本执行权限,即使攻击者上传了 Webshell 也无法运行。
(2)多重校验:检查文件扩展名、MIME 类型、文件头内容,禁止上传 asp、php、jsp 等可执行文件类型,对上传文件进行随机重命名,避免路径猜测。 - XSS 防护:
核心措施为输出编码,根据输出位置(HTML、JavaScript、CSS、URL)采用对应的编码规则,对 <、>、'、" 等特殊字符进行转义,可完全防范 XSS 攻击。
五、安全架构设计与最佳实践
Web 服务器与 Web 应用的安全防护需遵循纵深防御架构,分为三层:
- 边界层:部署 WAF 与抗 DDoS 设备,拦截常见应用层攻击与流量型攻击。
- 服务器层:按照 Apache/IIS 安全配置规范进行加固,关闭非必需服务,最小化攻击面。
- 应用层:在开发阶段遵循安全编码规范,对输入输出进行严格校验,避免引入 OWASP Top 10 相关漏洞。
Web 站点纵深防御架构图
六、前沿发展与趋势
- 云原生 Web 服务器安全:K8s 环境下的 Ingress 控制器逐步替代传统 Web 服务器,安全配置向声明式、自动化方向发展,漏洞响应时间缩短至小时级。
- 运行时应用自我保护(RASP):通过在应用 runtime 层嵌入防护逻辑,可无需依赖规则即可拦截注入、XSS 等攻击,防护准确率达 99% 以上,是未来 Web 应用防护的核心方向。
- OWASP Top 10 2021 版新增 "不安全设计""软件供应链安全" 两类风险,软考考点将逐步向开发生命周期安全、供应链安全方向倾斜。
Web 安全技术演进路线图
七、总结与建议
(一)核心技术要点提炼
- Apache 安全:需掌握模块化管理、访问控制配置、八大安全增强实践,其中 "低权限运行、隐藏版本信息、删除默认内容" 为高频考点。
- IIS 安全:重点掌握动态 IP 限制、URLScan、WAF 模块三类增强措施,区分不同认证方式的适用场景。
- OWASP Top 10:需牢记 2017 版与 2021 版的核心漏洞类型,掌握 SQL 注入、XSS、文件上传三类常见漏洞的原理与防护方法,参数化查询、输出编码、上传目录无执行权限是三大核心防护原则。
(二)软考考试重点提示
- 高频考点:Apache/IIS 配置项、OWASP Top 10 漏洞分类、SQL 注入与 XSS 的防护方法,选择题与案例分析题均会涉及。
- 易错点:混淆 Apache 与 IIS 的配置语法、忽略最小权限原则的应用、XSS 与 CSRF 的原理差异。
(三)实践应用建议
- 配置核查:使用 Apache 自带的 apache2ctl configtest、IIS 的安全配置向导定期核查配置合规性,每月至少一次。
- 漏洞扫描:每月使用 OWASP ZAP、Nessus 等工具对 Web 站点进行漏洞扫描,高危漏洞 72 小时内修复。
- 开发规范:将安全编码要求纳入项目验收标准,从源头减少应用层漏洞。
(四)学习路径与备考策略
- 基础阶段:掌握 Apache、IIS 的基本配置方法,动手搭建测试环境验证安全配置效果。
- 进阶阶段:深入理解 OWASP Top 10 每个漏洞的原理、攻击方式、防护方案,能够独立完成漏洞复现与修复。
- 应试阶段:重点记忆配置项参数、漏洞分类、防护原则,练习案例分析题的答题逻辑,突出 "分层防护、最小权限" 核心思想。