【问题标题】:https some parts of the websitehttps 网站的某些部分
【发布时间】:2012-12-02 00:48:31
【问题描述】:

这是我第一次在我的服务器上拥有这个https,我想知道我将如何做到这一点。

我不希望我的网站完全拥有https,只是其中的一部分。比如说:

  • https://mysite.com/register
  • https://mysite.com/login
  • https://mysite.com/user(以及 /user 之后的其他部分)

我希望浏览器强制使用其他链接以仅使用http

我需要知道的最佳方法或实践是什么?

【问题讨论】:

  • 我认为 HTTPS 仍然会更好,因为即使用户已登录,您仍然会在每次页面刷新时验证用户数据,除非您不处理登录系统。

标签: php apache url https


【解决方案1】:

好的,https 的开销并非微不足道,但如果 SSL 对于某些事情真的很重要,我建议将其全部设为 SSL。否则,浏览器会向新手吐出一些令人困惑的错误,说明有些事情是安全的,有些事情不安全。此外,如果您在错误的时间不小心在 SSL 和非 SSL 之间切换,可能会暴露您可能不希望的用户数据。

简而言之,保持统一可以将头痛降至最低。

我确信有人可以权衡 SSL 的开销。

【讨论】:

  • 我同意你的看法。但是,老板不想在整个站点上使用 SSL,这就解释了原因。 “正如他们所说”的原因是该站点被某个网络阻止。我现在不知道该怎么办。
【解决方案2】:

.htaccess 中的类似内容可能会解决您的问题:

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteCond %{REQUEST_URI} ^/register|/login|/user$
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
RewriteCond %{HTTPS} on
RewriteCond %{REQUEST_URI} !^/register|/login|/user$
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}

【讨论】:

  • 同意 - 您可以使用重写引擎,但要小心。如果写错了,你最终会遇到我上面提到的问题。由于他必须做部分 HTTPS,我想这是一个有效的答案。
  • 你是完全正确的,此外,在某些浏览器(尤其是 IE8)中出现安全弹出窗口的问题,以防某些资产不使用 ssl 提供(不是相同域资产的问题)覆盖了重写规则,但远程资产有问题)。
猜你喜欢
  • 2014-06-25
  • 1970-01-01
  • 1970-01-01
  • 2014-10-28
  • 2021-08-24
  • 2013-06-12
  • 2011-04-12
  • 2021-11-11
  • 1970-01-01
相关资源
最近更新 更多