2010-02-02 52 views
5

更新与澄清Firefox:记住登录信息的基础是什么?

你好,

当我们的用户去http://mysubdomain.server.com/login他们重定向到https://secure.server.com/login?subdomain=mysubdomain。所以实际的登录页面位于secure.server.com子域。

的问题是,如果与证书用户登录意味着subdomainA并告诉火狐记住密码,浏览器将即使用户访问登录页面含义登录到subdomainB自动完成登录表单。

Firefox假设secure.server.com/login?subdomain=subdomainA上的登录表单与secure.server.com/login?subdomain=subdomainB上的登录表单相同。

起初,我还以为火狐记得基于URL和形式的name属性的组合密码,但我试过基于子域(name="login-<subdomain_name>")改变name,它仍然无法正常工作。

我该如何让Firefox分别记住subdomainAsubdomainB的密码,而不是在一起?

回答

3

我不能完全解读你的设置,但你可以启用login manager debugging并检查Firefox的功能。您还可以检查profile中的signons.sqlite,以查看登录时存储了哪些数据。

我认为,对于网页表单,它关闭了表单的提交网址,但我的记忆在这方面很阴暗。

[编辑] source (nsLoginManager.js)说,它仅使用窗体的action以及页面的URL,并使用不动作/页URL本身,而是(见_getPasswordOrigin)方案+主机+端口组合。

+1

出色的洞察力和链接! Firefox根据表单提交URL来记住密码是非常有意义的......问题在于它没有区分我可以承担的唯一参数:'secure.server.com/check-login ?subdomain = subdomainA'与'secure.server.com/check-login?subdomain = subdomainB'。 – Dan 2010-02-02 15:42:22

+1

@丹:那么倒霉!我更新了该链接的源文件。 – Nickolay 2010-02-02 16:22:08

+0

然后你就有两种解决方案。 1:不同的端口重定向到https://,每个子域一个。 2:每个子域的'secure.'子域。 – 2010-02-03 09:03:32

1

如果他们实际上只是将数据输入到http中,只是在登录后重定向到https ,那么这不是一个坏的情况吗?您已经在线路上发送了未加密的最敏感的数据。

我相信一个更好的解决方案是将它们重定向到https站点,并在那里登录......有什么我错过了您的设置?他们是否再次登录安全网站?

+1

情况并非如此。浏览器会在mysubdomain.server.com上记住密码,而不是'secure.'。看起来http://mysubdomain.server.com/login只是一个没有任何数据输入的重定向,因为它是secure.server.com,数据是自动填充的。 – 2010-02-02 13:59:43

+0

@SF - 为什么在不安全的域**上有一个登录名/密码框**?不应该有任何地方因为它自动填充。我并不是说所有情况下你都需要https,但如果你有它,为什么不用它来登录所有的东西? – 2010-02-02 14:38:57

+1

为什么你声称那里有这样一个盒子?在不安全的页面中可能只有“您需要登录,继续安全登录页面”链接/重定向。所有数据输入(和自动填充)都发生在安全页面上。 – 2010-02-02 14:47:42

1

AFAIK域名(完整)是记住登录的当前基础。然而,并不总是如此。我不确定协议或端口号,但a.domain.comb.domain.comdomain.com不同,但与a.domain.com/somewhere相同。