讲师中心 微信公众号
AI工具推荐 视频效率加速

怎么在Apache中设置HSTS策略防止中间人劫持攻击实战

陌枫酱_5261

陌枫酱_5261

发布时间:2026-04-10 12:40:01

|

946人浏览过

|

来源于php中文网

原创

Apache中启用HSTS需先启用headers_module,仅在HTTPS虚拟主机中配置Header always set Strict-Transport-Security,推荐值为"max-age=31536000; includeSubDomains; preload",但includeSubDomains和preload须谨慎使用,上线前应先用短max-age测试并确保全站HTTPS稳定。

怎么在apache中设置hsts策略防止中间人劫持攻击实战

如何在Apache中启用HSTS头(Strict-Transport-Security)

直接加 Header always set Strict-Transport-Security 是最常见做法,但仅此一行往往无效——Apache默认不加载headers_module,且该指令必须在HTTPS虚拟主机内生效,HTTP站点上设置会被浏览器忽略。

实操步骤:

  • 确认模块已启用:a2enmod headers(Debian/Ubuntu)或检查LoadModule headers_module是否在httpd.conf中取消注释
  • 只在启用SSL的<virtualhost></virtualhost>块中添加配置,不要放在:80里
  • 推荐写法:Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"
  • max-age=31536000对应1年,低于6个月(15768000)的值不会被Chrome/Edge的HSTS预加载列表接受

为什么includeSubDomains和preload不能随便加

includeSubDomains会让所有子域名强制走HTTPS,一旦某个子域名(比如dev.example.com)还没配SSL,访问就会失败;preload更危险——它意味着你申请加入浏览器内置HSTS列表,之后即使删掉响应头,浏览器仍会强制跳转HTTPS长达数月。

安全建议:

Apache Superset Dashboard and SQL Exploration Skill
Apache Superset Dashboard and SQL Exploration Skill

Apache Superset 是一个广泛采用的开源 BI 平台,用于 SQL 探索、图表构建和仪表板交付。当代理需要查询仓库数据、组装仪表板或使用成熟的分析界面解释指标而不是临时笔记本代码时,此技能非常有用。

下载
  • 上线前先用max-age=300(5分钟)测试,确认全站HTTPS无误再逐步拉长
  • 确保所有子域名都已部署有效证书,且能稳定响应443端口请求
  • 要进preload列表,必须同时满足:max-age ≥ 31536000、includeSubDomains、preload,并提交到https://hstspreload.org

常见错误:HSTS头没生效的几个典型原因

浏览器开发者工具的Network标签页里看不到Strict-Transport-Security头?大概率是以下情况之一:

  • 配置写在了HTTP(:80)虚拟主机里——HSTS只对HTTPS响应生效
  • Apache配置未重载:systemctl reload apache2(不是restart)或apachectl graceful
  • 反向代理(如Nginx、CDN)覆盖了响应头,需在代理层也设置Strict-Transport-Security
  • 响应状态码不是2xx(比如重定向链中某步返回了301但没带HSTS头),HSTS只在2xx响应中被接受

PHP或应用层能否替代Apache设置HSTS

可以,但不推荐。例如PHP中用header('Strict-Transport-Security: max-age=31536000'),问题在于:一旦某条PHP路径出错(如未认证跳转、空输出、异常终止),HSTS头就丢失;而Apache的Header always set是响应发出前强制注入,稳定性更高。

例外场景:

  • 动态控制max-age(如灰度期用短时间,全量后切长周期)
  • 某些PaaS环境无法修改Web服务器配置,只能靠应用层
  • 注意:PHP必须在session_start()之前调用header(),否则报headers already sent

HSTS本身不加密流量,也不防DNS污染,它只是告诉浏览器“以后别再用HTTP连我”。真正容易被忽略的是:一旦开启preload,回退成本极高——没有“关闭开关”,只能等浏览器下次更新内置列表。上线前务必用curl -I https://yoursite.com反复验证头是否稳定出现。

热门AI工具

更多
UpDream
UpDream Hot

一款AI视频创作工具,主要用于哔哩哔哩推出的自研AI视频创作工具,适合需要提升相关任务效率的用户。

小橡皮AI

一款AI工具,主要用于小橡皮一键去AI味,将机器味重的内容改得更有活人感,防止因为 AI 内容被平台打上 AI 标签,以及限流,适合需要提升相关任务效率的用户。

Loomy
Loomy Hot

一款AI工具,主要用于科大讯飞发布的桌面级 AI 助理,比 OpenClaw 更易用、更安全!,适合需要提升相关任务效率的用户。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

PixTV
PixTV Hot

PixTV是一款面向AIGC内容创作的AI视频生成工具。

立刻MV
立刻MV Hot

立刻MV是一款AI文本写作工具,AI 音乐视频(MV)创作工具。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

蛙蛙写作

一款AI论文写作工具,主要用于超级AI智能写作助手,适合需要提升相关任务效率的用户。

相关专题

更多
Java 网络安全
Java 网络安全

本专题聚焦 Java 在网络安全与加密通信中的应用,系统讲解常见加密算法(MD5、SHA、AES、RSA)、数字签名、HTTPS证书配置、令牌认证(JWT、OAuth2)及常见安全漏洞防护(XSS、SQL注入、CSRF)。通过实战项目(如安全登录系统、加密文件传输工具),帮助学习者掌握 Java 安全开发与加密技术的实战能力。

5205

2025.10.13

PHP 安全与防护
PHP 安全与防护

本专题聚焦于PHP开发中的安全问题与防御措施,详细讲解SQL注入、XSS攻击、CSRF攻击、文件包含漏洞等常见安全风险及其修复方法。通过结合实际案例,帮助开发者理解漏洞成因,掌握输入验证、会话安全、加密存储与安全编码规范,全面提升PHP网站的安全防护水平。

455

2025.11.04

XORM框架安装配置与数据库连接
XORM框架安装配置与数据库连接

本专题聚焦XORM框架的配置与连接环节,拆解MySQL、PostgreSQL、SQLite、SQL Server的DSN写法与驱动选择,讲清连接池参数、多数据源拆分、读写分离与超时重连的处理方式,并补充容器与兼容数据库的适配经验。

0

2026.11.04

XORM框架安装配置与数据库连接
XORM框架安装配置与数据库连接

本专题聚焦XORM框架的配置与连接环节,拆解MySQL、PostgreSQL、SQLite、SQL Server的DSN写法与驱动选择,讲清连接池参数、多数据源拆分、读写分离与超时重连的处理方式,并补充容器与兼容数据库的适配经验。

0

2026.11.04

XORM框架安装配置与数据库连接
XORM框架安装配置与数据库连接

本专题聚焦XORM框架的配置与连接环节,拆解MySQL、PostgreSQL、SQLite、SQL Server的DSN写法与驱动选择,讲清连接池参数、多数据源拆分、读写分离与超时重连的处理方式,并补充容器与兼容数据库的适配经验。

0

2026.11.04

XORM框架零基础入门教程
XORM框架零基础入门教程

本专题梳理XORM框架的入门路径,从框架定位、依赖安装、连接数据库到跑通第一个增删改查示例,讲清Engine初始化、日志开启与项目目录规划,并对比GORM等同类ORM的差异,帮助Go开发者建立整体认知。

0

2026.11.04

Docker Desktop怎么设置端口映射
Docker Desktop怎么设置端口映射

本专题聚焦Docker Desktop容器端口映射与访问配置,整理从创建容器、设置端口绑定到验证本地服务访问的操作流程。针对端口被占用、映射配置错误、容器服务无法访问等情况,也提供相应的检查方向,方便用户完成端口配置。

0

2026.11.03

Docker Desktop镜像构建教程
Docker Desktop镜像构建教程

想使用Docker Desktop将本地项目构建成Docker镜像?本专题围绕镜像构建的实际操作展开,介绍Dockerfile编写、构建命令使用、镜像标签设置和构建日志查看等内容,同时整理镜像无法生成、依赖安装失败及构建缓存异常等问题的排查思路。

0

2026.11.03

Docker Desktop容器创建指南
Docker Desktop容器创建指南

本专题聚焦Docker Desktop容器创建与运行配置,介绍通过本地镜像或远程镜像创建容器的方法,以及容器启动、终端访问、日志查看和基础管理等操作。针对端口冲突、参数配置不当、容器无法启动等情况,也整理了相应的排查方向。

0

2026.11.03

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Apache Maven 官方安装指南
Apache Maven 官方安装指南

共0课时 | 0人学习

Apache Maven 官方用户中心
Apache Maven 官方用户中心

共0课时 | 0人学习

Apache Subversion 官方手册
Apache Subversion 官方手册

共0课时 | 0人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn