用户身份验证-通过HTTP传递会话cookie存在安全风险


User authentication- Security risk passing session cookie over HTTP?

我的网站上有一个"客户端中心",只能通过HTTPS访问。我目前使用单一会话cookie来跟踪PHP会话变量,如User_Authenticated、Client_ID等

我想在他们登录后将导航栏上的链接从"登录"更改为"注销|客户端中心"。这很容易,但我的大多数网站都有指向HTTP而不是HTTPS的绝对链接。我可以使我的所有链接都是相对的,这样他们登录后就有望保持HTTPS,但我的网站是图形密集型的,我不能保证他们会保持HTTPS(例如,如果他们键入http://mysite.com登录后在其浏览器上)。

我的问题如下:

1) 通过HTTP传递此cookie有风险吗?我听说它可以被拦截和欺骗。那太糟糕了!

2) 对于导航栏上的链接,我可以使用两个cookie吗?一个是只包含其凭据的安全cookie,另一个只是让浏览器知道他们是否登录?有可能像这样同时使用不同cookie的多个会话吗?

我也听说过使用基于数据库的会话管理系统,但目前这还远远超出我的想象。我是PHP和MySQL的新手(这是我的第一个网站)。

提前感谢!

您可以使用第二个cookie做您想做的事情。然后,您可以对HTTP和HTTPS页面使用会话cookie(以获取登录状态),但只使用第二个仅HTTPS cookie进行身份验证。

我写了一篇文章,描述了如何将这两个问题分开,维护会话和身份验证。这是一件好事,即使您决定在整个网站上使用HTTPS。

不过,我会考虑对整个网站强制执行HTTPS,这会让你的生活更轻松。如果你的网站流量不是很高,那么对于今天的服务器来说应该没有问题。

通过http传递身份验证cookie是个坏主意。这就是火羊暴露出来的问题,也是谷歌、脸书和推特等公司现在一直鼓励(或要求)https的原因。

如果你担心网站上的sesion劫持,那么你应该为每个需要保护的页面和资产强制执行https。理想情况下,对所有资产强制执行https,以避免页面上出现关于混合安全性的烦人的borwser警告。

您可以使用此

http://systembash.com/content/force-https-ssl-access-url-apache/