【问题标题】:Response code for non-secure HTTP connections非安全 HTTP 连接的响应代码
【发布时间】:2013-10-17 12:05:28
【问题描述】:

我网站上的某些页面(身份验证、支付)必须通过 HTTPS 提供。

当客户端通过 HTTP 访问此类页面时,我想将其重定向到 HTTPS 版本。

目前,我正在使用带有 Location 标头的 301 Moved Permanently 代码,该标头指向同一个 URL,并且方案已修改为 HTTPS。

我想知道:是否有特定的 HTTP 响应代码用于使用错误的协议?

类似于405 Method not allowed 的 HTTP 动词。

【问题讨论】:

标签: http


【解决方案1】:

不是这样,不——301 永久重定向正是这里的正确选择。

但是,有一个像 HTTP Strict Transport Security (HSTS) 这样的东西,它允许你,一旦你告诉浏览器使用 HTTPS 使用 301 重定向,也告诉它永远不要在您的站点上再次使用未加密的 HTTP 协议。这样做的方法是在 HTTPS 响应中包含如下所示的标头(not 在重定向中,通过纯 HTTP 发送):

Strict-Transport-Security: max-age=31536000; includeSubDomains

有关更多详细信息,请参阅上面链接的维基百科文章和RFC 6797

【讨论】:

    【解决方案2】:

    根据this,403.4 似乎是您想要的(在 IIS 中),但我认为 HTTP 标准中没有等效项。

    【讨论】:

      【解决方案3】:

      响应 301 对于登录页面等似乎是合理的(无需传输凭据即可加载页面)。否则,当发送个人详细信息时,明智的做法是说未找到 (401),因为有人在恶作剧。检查引荐来源网址并定期检查日志文件也是明智之举。

      (人们确实会复制网站并伪装成您的网站,只是在此过程中转发流量并收集个人详细信息:-( )

      【讨论】:

      • 你的意思是401 Unauthorized还是404 Not Found
      • 两者都可以。个人口味真的
      猜你喜欢
      • 2020-11-12
      • 1970-01-01
      • 1970-01-01
      • 2017-12-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多