【发布时间】:2025-12-30 08:35:07
【问题描述】:
我想通过在 URL 中提供用户名和密码,让用户有机会根据请求进行身份验证。由于请求是安全的,我对此并不担心。
我尝试使用常用浏览器(Firefox、Chrome、Safari 和 Opera 是我测试的浏览器)调用请求 http://user:password@localhost/,但我得到了 401 响应。当我尝试相同的 URI 时,但这次将凭据作为 HTTP 标头提供,例如 Authentication: Basic dXNlcjpwYXNzd29yZA==,它起作用了。
在搜索时,我找到了另一个问题的答案:https://serverfault.com/questions/371907/can-you-pass-user-pass-for-http-basic-authentication-in-url-parameters#answer-371918
此答案声称,浏览器应根据 URL 中提供的凭据自动生成 Authentication 标头。
使用 curl 在命令行上尝试它时,它可以工作。那么,为什么它在浏览器中不起作用?
这与安全有关吗?
Firefox 是唯一一个声称:
您即将使用用户名“user”登录站点“localhost”,但该网站不需要身份验证。这可能是 企图欺骗你。
“localhost”是您要访问的站点吗?
但是,当通过单击是确认此请求时,它会在没有凭据的情况下发送请求。至少,我在 firebug 的 network-tab 中看不到它们……而且响应也是 401。
【问题讨论】:
标签: url authentication curl browser basic-authentication