相关疑难解决方法(0)

为什么浏览器在URL中提供凭据时不会发送身份验证标头?

我想通过在URL中提供用户名和密码,让用户有机会进行按请求身份验证.由于请求是安全的,我对此没有任何顾虑.

我尝试http://user:password@localhost/使用通常的浏览器调用该请求(Firefox,Chrome,Safari和Opera是我测试的那些),我得到了401回复.当我尝试相同的URI,但这次提供的凭证像HTTP-header一样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"是您要访问的网站吗?

但是当通过单击是确认此请求时,它会在没有凭据的情况下发送请求.至少,我无法在萤火虫的网络标签中看到它们......响应也是401.

browser authentication url curl basic-authentication

7
推荐指数
1
解决办法
9532
查看次数