将 HTTP 请求重定向到 HTTPS 的推荐方法

2023-11-30

我对如何将所有 http 页面重定向到 https 有一些疑问。

我看到有人告诉我们要像这样重写reply:

阿帕奇说要做this way

任何人都可以向我解释进行此更改的推荐方法是什么


将 http 重定向到 https 的唯一安全方法是使用 HSTS(标头严格传输安全)带有预加载选项。

apache 重定向是不安全的,因为攻击者可以拦截它并重写它。不幸的是,对于较旧的浏览器和没有预加载 HSTS 的浏览器,这是您唯一的选择:

<VirtualHost *:80>
      ServerName www.example.com
      Redirect "/" "https://www.example.com/"
</VirtualHost>

阿帕奇重定向

在 https 响应中:

<VirtualHost *:443>
      # Use HTTP Strict Transport Security to force client to use secure connections only
      # Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"
      Header always set Strict-Transport-Security "max-age=31536000"

      # Further Configuration goes here
      [...]
</VirtualHost>

HSTS

或者,使用 .htaccess:

# Redirect if http
RewriteCond %{HTTPS} off
RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
# set header if https
# Header set Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" env=HTTPS
Header set Strict-Transport-Security "max-age=31536000" env=HTTPS

标头严格传输安全 (HSTS) 有 2 个作用:

  • 对于访问者来说,它告诉浏览器仅在该域上使用 https以及所有子域一年(所有http请求都会重写为https请求,无需网络交互)
  • 对于浏览器供应商来说,“preload”关键字允许他们在源代码中预加载网站。这样,您就可以避免第一个不安全的请求:浏览器已经知道网站提交了 https。注意HSTS+preload不能回滚,这是对安全性的明确承诺(但这就是它的优势:攻击者也无法删除它)

评论中的HSTS是最安全的,但不能回滚:

  • 严格传输安全“max-age=31536000;includeSubDomains;预加载”

未注释的 HSTS 不太安全,因为第一个连接仍然不安全,并且不保护子域:

  • 严格传输安全“max-age=31536000”

HSTS 是针对 SSLTrip 的唯一可靠保护

SEO 影响:如果网站已经将所有 http 网页重定向到 https,则该标头没有负面(也没有正面)影响。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将 HTTP 请求重定向到 HTTPS 的推荐方法 的相关文章

随机推荐

  • 如何在 Presto 中将日、月、年字段合并为日期?

    我的表中的条目与日期一起保存为不同的字段day month and year 我想将日期读取为日期类型 正确的做法是什么 其他方式 date format d d d 2020 3 31 基于在 Presto 上计算日期和周末日期
  • Windows 多处理

    我发现 Windows 在多处理方面有点笨拙 我对此有疑问 pydoc 指出你应该使用多处理时保护 Windows 应用程序的入口点 这是否意味着仅创建新进程的代码 例如 Script 1 import multiprocessing de
  • 重定向在 WordPress 中不起作用?

    我正在使用下面的代码在 WordPress 中进行重定向 currentPage explode SERVER REQUEST URI current page url currentPage 0 if current page url e
  • 查找 _id 在 mongodb 中不起作用

    我有一个名为 Releases 的集合 其中包含一个名为 Product 的子文档 我的收藏看起来像这样 id ObjectId 5b1010e4ef2afa6e5edea0c2 version abc description p abc
  • 当新电子邮件到达共享邮箱中的任何子文件夹时运行代码

    我想在任何新电子邮件到达特定共享邮箱时运行代码 当电子邮件到达 INBOX 文件夹时触发该事件 如果新电子邮件直接进入其子文件夹 则该事件不会触发 例如 电子邮件受保护 收件箱 子文件夹1 如果收件箱中的任何子文件夹收到新电子邮件 我应该更
  • 赌场 24/7 员工名册的数据库模型

    我们目前使用基于笔 纸的名册来管理赌场的桌面游戏工作人员 每行代表一名员工 每列代表 20 分钟的时间段 每个单元格代表员工被分配到的表 或者他们被分配到休息时间 员工轮班的开始和结束时间各不相同 他们可以处理的游戏 技能也各不相同 我们需
  • 编译并运行C++代码运行时

    有谁知道如何在程序运行时编译您编写的 C 代码 后来我想运行该代码 我想这样做是因为我正在尝试制作一款可以教您编程的游戏 因此用户必须在游戏运行时编写代码并进行测试 谢谢你的帮助 如果您选择一种在设计时考虑到嵌入的语言 例如 LUA 或 p
  • 如何在 Prolog 中将谓词作为另一个谓词的参数传递?

    我有这 3 个谓词 times X Y Result is X Y minus X Y Result is X Y plus X Y Result is X Y 例如我想通过times 2 2 in the plus X Y 像这样plus
  • JVM 是开源代码吗?

    JVM 是开源代码吗 如果没有 如何获取JVM的代码 这完全取决于您使用哪个 JVM 如果您使用 OpenJDK JVM 那么您可以从以下位置获取源代码here or here来自 OpenJDK 项目列表 或者here来自 GitHub
  • 无法连接到SQL Server 2008?

    我一直在尝试各种技巧 从启用 TCP IP 向防火墙添加例外到戳比尔盖茨巫毒娃娃 但似乎没有什么对我有用 通过management studio连接到sql server 2008真的那么难吗 也许 抢劫银行会更容易 当我弄清楚要抢劫哪家银
  • RSA 加密的结果是否保证是随机的

    我使用 RSACryptoServiceProvider 来加密一些小数据块 对于我正在研究的解决方案 重要的是 如果使用相同的公钥对同一段源数据加密两次 则结果 加密的数据块 不相同 我已经用一个例子对此进行了检查 它的效果正如我所希望的
  • 获取发件人电子邮件地址

    我有以下 VBA 代码 用于在收到特定主题时自动发送电子邮件 Private WithEvents Items As Outlook Items Private Sub Application Startup Dim objNS As Ou
  • 我们如何按类指定 jQuery 验证插件的规则?

    The jQuery 验证插件效果很好并且非常容易使用 selector validate 只需设置 CSS 类 如 必需的电子邮件 就会显示默认消息 但是 我需要自定义消息 该文档说您可以使用元素的键值对及其相应的消息来指定规则 sele
  • 如何在 Pygame 中使用 Sprite Collide

    我正在制作一个非常简单的游戏 小鸟 玩家 必须躲避岩石 如果它被岩石击中 你就会失败 我正在尝试使用 pygame sprite collide rect 来判断它们是否接触 但我似乎不知道如何正确使用它 这是我的代码 import pyg
  • Android - 创建进度对话框

    我是安卓开发新手 我想开发一个dialog with a progressbar在我的应用程序中 当我点击搜索按钮时dialog应与出现progressbar 显示在切换到另一个之前进度正在进行中activity 请用示例代码建议我 Use
  • 使用 Visual Studio 2008 编译 php 扩展,MODULE ID 与 php 不匹配

    使用 VC9 2008 和 VC10 2010 编译我自己的 php 扩展后 使用以下步骤 http blog slickedit com 2007 09 creating a php 5 extension with visual c 2
  • 使用低级键盘钩子更改键盘字符

    我正在创建自定义键盘布局 作为开始步骤 我想让用户按下一个键 让我的键盘钩子拦截它 并输出我选择的不同键 我找到了这个键盘挂钩代码 我试图根据我的目的对其进行稍微修改 http blogs msdn com toub archive 200
  • 在进程中断期间使用 python ctypes 时高延迟背后的原因

    在调查 Python 代码库中的关键路径时 我们发现 ctypes 在延迟方面的行为是相当不可预测的 我们的应用程序的更多背景 我们有很多进程 每个进程都通过共享内存进行通信 我们利用 python 库multiprocessing Raw
  • iPhone 如何通过无线或蓝牙访问另一台非 iPhone 设备?

    我试图弄清楚 iPhone 是否可以通过无线或蓝牙连接到另一台非 iPhone 设备 但发现了相互矛盾的信息 我发现的大部分内容都是在 SDK 3 0 版本发布之前发现的 当时这肯定是不可能的 查看堆栈溢出问题 例如iPhone 3 0 S
  • 将 HTTP 请求重定向到 HTTPS 的推荐方法

    我对如何将所有 http 页面重定向到 https 有一些疑问 我看到有人告诉我们要像这样重写reply 阿帕奇说要做this way 任何人都可以向我解释进行此更改的推荐方法是什么 将 http 重定向到 https 的唯一安全方法是使用