2011-12-12 199 views
3

我有一个用户必须登录的网站。我想要使​​用HTTPS,因此请与服务器建立安全的加密连接以检查用户名和密码。使用HTTPS而不是HTTP

目前在我的服务器上我有一个名为httpdocs的文件夹,这是我的网站存储的地方,我也有一个名为httpsdocs的文件夹。现在

正如我所说我的网站被储存于httpdocs所以逻辑上我会去http://website.com

但我发现,如果我去https://website.com我得到一个安全的连接到存储于httpdocs页面。

无论如何,我的问题是,每当我去另一个链接我松开安全连接(URL返回到http://)那么我如何保持它的一切安全?我将不得不在href中使用完整的URL,因为这似乎有点跛脚而不是使用href = page2.php。

我是新的网站开发领域,但我有经验的开发,如果这可以帮助你。

非常感谢帮助。

如果有人知道什么是好的,一些基本的教程或阅读材料会很棒吗?

再次感谢。

+1

您可能正在使用绝对网址或在您的网站中使用变量(无论写入哪种语言),该变量都包含您网站的“基本网址”。您需要发布一些代码/ html或可能的链接到您的网站以获得更好的答案。 – Prisoner

+0

我没有绝对的网址,我保持清楚。这就是我的问题,如果我绝对使用https://mysite.com/page3.php这将是安全的,但我不知道如何做到这一点相对链接。有什么服务器端,我可以改变,像价值或类似的东西?我在我的服务器上使用CentOS – ragebunny

+1

不,使用'href =“page3.php”'会使用你所使用的任何协议 - 这可能是一个.htaccess问题吗? – Prisoner

回答

2

要回答你的问题的意见,你应该使用mod_rewrite(假设其启用):

RewriteEngine On 
RewriteCond %{SERVER_PORT} 80 
RewriteRule ^(.*)$ https://www.yourdomain.com/$1 [R,L] 

,将任何网页发送到https。

+0

这不是一个安全的解决方案**,因为如果每个链接都使用不安全的HTTP访问,然后重定向到安全HTTPS,那么在每次点击和重定向之间,您都容易受到几乎相同的攻击,就好像您拥有所有的通信在HTTP中完成。具体来说,中间人攻击可能会发送除重定向之外的其他内容,或会话劫持或触发与Cookie一起发送的敏感数据,查询参数或发布数据。正确的解决方案将首先消除HTTP流量。 – rsp

+0

我不知道该怎么做? @rsp – ragebunny

2

请不要在网址中使用http://foo.com/path,而应该使用//foo.com/path(或者,更好的方法是,如果您停留在同一台服务器上,请使用/path - 它确实有效)。做完整的网址会带来冗余和脆弱。躲开它。

0

退房HTTP严格传输安全(HSTS)https://www.owasp.org/index.php/HTTP_Strict_Transport_Security

基本上,你可以强制浏览器(unless it's IE<12)通过添加这头到安全站点的配置始终使用https:

Header set Strict-Transport-Security "max-age=31536000; includeSubDomains" 

这也可以与301(永久)重定向用于非安全/ HTTP站点的配置,也可以在上述引用的站点上使用outlined

<base href="https://website.com/"> 

这将设置所有相对URL的网页上:

此外/或者,您也可以通过添加像这样朝<head>标签的顶部设置你的“website.com”页面base href (包括链接,样式表,脚本,图像等)以HTTPS网站的根作为其基础。但是,根据网站的结构和大小,您需要针对每个页面验证其基础href和/或页面内的网址是否包含任何必要的路径信息(即子目录)。否则,指向“otherpage.html”的http://website.com/some/directory/page.html上的链接将指向http://website.com/otherpage.html而不是http://website.com/some/directory/otherpage.html。在这种情况下,您希望基础href为“http://website.com/some/directory/”,或链接中的相关url应指向“/some/directory/page.html”或“some/directory/page.html”(不需要斜杠这个案例)。

相关问题