如何制作安全的登录页面(https)


How to make secured login page (https)

我想知道如何以安全的方式提供登录页面。由于某些原因,我不能通过https提供所有页面,所以我想这样做:我的网页网址是http://www.example.com,但登录和注册子域名是https://ssl.example.com

我当然有ssl证书,我只是不知道如何使这个登录机制。

以这种方式工作的示例页面是ebay.com,查看主页和登录页面的url

你的问题在这里已经有答案了。

HTTPS是绝对重要的在维护一个网站和浏览器之间的安全连接。公共wifi网络使用户处于危险之中,如果使用得当,HTTPS是唯一可以保护用户帐户免受此漏洞影响的工具。

即使您在服务器B上建立了安全登录,而用户在服务器a上浏览,通过类似OAuth的东西,攻击者所需要做的就是拦截他们的OAuth令牌并冒充最终用户。

直接使用HTTPS。如果你的虚拟主机阻止你这样做,买一个便宜的虚拟主机,控制你的网站。如果你的广告网络阻止你这样做,向他们施压,让他们支持HTTPS。Adsense已经这么做了

这并不容易,也不标准,但却是可能的。你的问题是,你实际上有2个网站与不同的会话id/cookie。

我假设你想获得认证,你可能不想传输任何明文密码。

这就是为什么我要发明一些令牌,可以在一些https网站的帮助下解锁你在非https网站上的用户。

我会怎么做:我会发明一些令牌,这些令牌是我在他的会话id、一些文本和一些包含实际日期或年份的结构的哈希上生成的。或者只是一些随机的数字作为Token。将这个令牌保存到数据库和用户的非https会话中。然后使用您的登录过程将用户发送到HTTPS-Site。https://ssl.example.com/?token=234987239427839428347

如果用户可以用他的密码验证他的帐户,您就可以用这个令牌解锁数据库中的行。然后将用户发送回非https站点。

当一些用户访问您的非https站点时(使用生成的令牌并且未登录),您应该查找会话知道的未锁定令牌。如果这个令牌是解锁和正确的,只需登录用户。


这是一个解决方案,这当然是可能的,但你可能会考虑你最初的意图去做。非https不是我个人的建议。但是作为一个网站管理员,我知道广告和其他东西会阻止我强迫我的用户在https上冲浪。所以我给了他们一个选择。他们并不真正关心HTTPS。但是有些人喜欢。