Firefox很快忘记了HTTP Basic Auth


85

如何使Firefox“无效”从客户端保存网站的HTTP Basic Auth凭据?

目前,我必须重新启动浏览器,这对于打开多个选项卡来说相当麻烦。

有没有办法做到这一点,而无需重新启动Firefox /清除缓存/等。

Answers:


73

您可以从“ 历史记录”菜单中选择“ 清除最近历史记录”Ctrl+ Shift+ Del,Macs:Cmd ⌘+ Shift+ Del)。然后,您可以选择仅从详细信息中清除活动登录以清除这些会话。

在旧版本的Firefox(例如FF3)中,“ 清除最近历史记录”位于“ 工具”菜单下。快捷方式是一样的。


7
在当前的Firefox中,此菜单选项位于History菜单中,而不是Tools。我用Firefox 29.0.1验证了这一点。

适用于firefox thanx
themis 2016年

61

如果您将原始会话中的用户名和密码更改为不会进行身份验证的用户名和密码,Firefox将销毁对旧身份验证的所有引用并尝试新的身份验证。

您可以通过添加user来更改/设置身份验证:将@传递到URL的开头,例如: http:// user:pass@www.example.com/

如果您使用user登录www.example.com:传递然后键入(添加到地址的开头)@会导致这种情况发生,例如: http://abc@www.example.com/

快速修复,不需要任何插件。

请注意,这仅适用于HTTP Basic Auth。

另外一个好处是,这将仅影响您正在与之交互的网站。所有其他登录到任何其他网站将保持活动状态。


7
这是一个很棒的答案。简单,易用,无需额外的软件,并且以非明显明显的方式聪明。
wfaulk

3
另外,这应该适用于大多数其他浏览器,包括Chrome和Internet Explorer(IE)
Drew Anderson

@DrewAnderson上次我检查过,只有firefox支持用户:在url栏中传递@表示法。
masterxilo

9

Web开发工具栏允许HTTP验证的浏览器会话中进行复位。

从Firefox的上下文菜单中,选择Web Developer - > Miscellaneous - > Clear Private Data - > HTTP Authentication。


1
在当前的Firefox
Scolytus

2
不幸的是,自从我发布这个答案以来,这个功能似乎已经消失了。
boot13 2015年

1
刚试过它,有效!请注意:这不是Firefox捆绑的开发工具的一部分,您必须安装链接的附加组件。
Diego V

2

网站无法提供注销选项

这是错的。网站有几种简单的方法可以提供注销选项。

1)注销链接将指向包含故意不正确凭据的同一域中的URL

2)注销链接将触发带有以下代码片段的javascript(仅限Microsoft Internet Explorer):

<script>document.execCommand('ClearAuthenticationCache', 'false');</script>

2
似乎没有办法可靠地使在浏览中表现一致的凭据无效,并且不会弹出不需要的登录框。
迈克尔

使用不正确的凭据注销链接已涵盖在另一个答案
梅德格里戈里耶夫

2

从私人窗口发出请求。

在Firefox中:( File - New Private WindowUbuntu Ctrl+Shift+P
在Chrome中New incognito Window(Ubuntu Ctrl+Shift+N


0

不确定这是否会帮助其他人,但在我的情况下,我认为当我无法访问具有基本HTTP身份验证的站点时,firefox存储的密码是错误的。但事实证明,该网站实际上使用的是NTLMv1(Windows版本的基本http身份验证),自版本30以来,firefox现在默认禁用了该版本。

要启用转到about:config,并将pref network.negotiate-auth.allow-insecure-ntlm-v1设置为True。

Firefox没有提示http认证网站的密码,如何提示?


-2

好吧,我将客户端的PHPSESSIONID到期。当它过期时,它将从客户端浏览器中删除它。第二步(我还没想到)将删除服务器端的会话cookie,它会在服务器超时之前删除服务器上的auth状态,并且当它看到这个时会阻止服务器生成新的phpsessionid没有cookie的客户端。

    <script type="text/javascript">
        document.cookie = "PHPSESSID=;Path=/;expires=Thu, 01 Jan 1970 00:00:01 GMT;";     
    </script>

HTTP基本身份验证并不意味着服务器中的会话,也不意味着cookie。此外,即使它确实如此,您的解决方案几乎不会在任何情况下都起作用,因为现在几乎所有会话cookie都被标记为secure禁止javascript访问它们。
NuTTyX

当我查看cookie时,它会从firefox浏览器中取出一个cookie,但还有更多内容。当我清除bowser缓存并删除活动登录时,当我回到网站上的目录时,我得到了http auth对话框。我想知道是否有一个全局命令将从浏览器刷新其活动登录。如果没有,应该有。
drtechno

我的坏,我的意思是“仅限http”标志禁止javascript以编程方式访问cookie中的数据。至于原始问题本身,我偶然发现了一些让一些浏览器忘记的方法,但在某些情况下(比如在IE中),由于安全原因,它们使它无法使用:如果你输入以不存在的用户和密码为前缀的url,他们会“覆盖”你以前的登录:注销:nopasswd@www.site.com
NuTTyX

-4

最简单的方法是从站点注销,而不是仅关闭选项卡。如果这不是一个选项而你事先知道你将访问一个你想要忘记的网站,你可以安装Sandboxie并在沙盒中运行你的Firefox(或任何浏览器)。完成后删除沙箱的内容,您所做的一切都已消失。


12
HTTP身份验证是一种特殊类型的HTTP标头,它会使您的Web浏览器提示您输入用户名和密码,然后在需要时自动重新发送。当网站使用此类型的身份验证时,网站无法提供注销选项。在大多数浏览器中,您必须关闭浏览器才能忘记登录信息。
Bavi_H 2010年

@Bavi_H:我听说如果站点在登录时发送HTTP 401,某些浏览器会忘记现有会话。
grawity 2011年

1
仅清除站点cookie不会使保存的用户名和密码无效以进行基本身份验证。
Petr Gladkikh 2012年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.