apache - HSTS 预加载不同的结果
问题描述
在我拥有的一个站点上Header set Strict-Transport-Security "max-age=31536000" env=HTTPS
,这足以预加载 HSTS,但我的.htaccess
文件中完全相同的代码段不允许在另一个站点上预加载。我已经Header set Strict-Transport-Security: "max-age=31536000; includeSubDomains; preload" env=HTTPS
解决了这个问题,但我想知道为什么较短的版本可以工作并预加载第一个站点而不是第二个站点?
任何见解将不胜感激。
解决方案
为什么较短的版本有效
简短的版本不可能“工作”。实施 HSTS 就足够了,但没有被HSTS 预加载列表接受。
您的配置中的其他内容必须已发送完整的标头。
确认实际发生了什么的唯一方法是记录在请求中发送的 HTTP 请求/响应标头,而不是通过 ( .htaccess
?) 配置文件中的指令。
即使您发布的指令本身也不一定足够。您必须有一些设置HTTPS
环境变量的东西(这与HTTPS
服务器变量不同)。如果您有从 www 到非 www 的规范重定向(反之亦然),那么您将缺少在always
301 重定向(仅限 HTTPS)上设置标头的参数 - 这也是“预加载列表”的要求。
在服务器配置中实现 HSTS“预加载”要容易得多且不易出错。如果您只能访问,.htaccess
那么我会犹豫是否要提交“预加载列表”。
另请参阅我对 CodeReview SE 上以下相关问题的回答:
推荐阅读
- reactjs - 将 GMaps API 的回调传递给 react-google-maps 的 DirectionsRenderer 组件的问题
- security - 如果未使用“data-target”属性,Bootstrap 3.3.7 是否安全可靠?
- mysql - 如何创建循环工作的触发器?
- c++ - 如何编写一个独立的递归函数来打印二叉搜索树的所有非叶节点的级别?
- android - 谷歌街景/地图 API
- python - Transcrypt:如何检查空列表?
- logging - 有什么方法可以删除逻辑应用运行历史/日志?
- r - geom_density 返回的观察结果比预期的要多
- java - 如何将来自sampler1响应的变量传递给Jmeter中的sample2请求
- javascript - 无法添加第二个切换类