您可以在 URL 参数中为 HTTP 基本身份验证传递用户/密码吗?

rip*_*234 207 http authentication http-basic-authentication

我相信这是不可能的,但我认识的人坚持认为它有效。我什至不知道要尝试哪些参数,而且我还没有在任何地方找到此文档。

我试过http://myserver.com/~user=username&password=mypassword但它不起作用。

您能否确认实际上不可能通过 HTTP 参数(GET 或 POST)传递用户/密码?

wom*_*ble 280

确实不可能通过标准 HTTP 身份验证中的查询参数传递用户名和密码。相反,您使用特殊的 URL 格式,如下所示:http://username:password@example.com/-- 这会在标准 HTTP“授权”标头中发送凭据。

有可能与您交谈的人正在考虑查看查询参数并验证凭据的自定义模块或代码。不过,这不是标准的 HTTP 身份验证,而是特定于应用程序的事情。

  • 仅供参考,[IE](http://support.microsoft.com/kb/834489) 或 [Chrome](https:// code.google.com/p/chromium/issues/detail?id=82250#c7),如果其他人还没有效仿,也不会感到惊讶。 (57认同)
  • 从那以后,我了解到 Chrome 禁用了它一段时间,但后来又重新启用了此功能。我还了解到 Safari 在遇到这些类型的链接时会抛出网络钓鱼错误.. 基本上基于 url 的 http 身份验证的时代结束了.. (15认同)
  • 实际上在 Chrome 中工作正常。只有 IE 被宠坏了。 (12认同)
  • 它可能仍然有效,但除了测试之外我不会将其用于任何其他用途:https://tools.ietf.org/html/rfc3986 - 不推荐在 userinfo 字段中使用格式“user:password”。 (5认同)
  • 基本的 http 身份验证很痛苦,但由于它很容易设置,因此不太可能完全消除。即使 http 2.0 也包含 rfc7235,但没有提及弃用。 (3认同)

小智 22

http://username:password@example.com适用于 FireFox、Chrome、Safari 但不适用于 IE。

微软知识库

  • 通过阅读那个错误报告,它被重新添加到 Chrome 20 中。当然,如果没有的话,我希望看到很多人继续抱怨它。 (6认同)
  • 此功能已从 Chrome 19+ 中删除。请参阅 https://code.google.com/p/chromium/issues/detail?id=123150 (4认同)
  • @Diago 如果密码包含“@”,则它不起作用。它给出了致命错误,谁能告诉我我们如何一次提供用户名和密码 (2认同)

Wil*_*ilt 19

不推荐在 URL 中传递基本身份验证参数

为此,有一个 Authorization 标头字段,请在此处检查: http header list

使用方法写在这里: Basic access authentication

您还可以在那里阅读,尽管某些浏览器仍然支持它,但不建议在 url 中添加基本授权凭据的建议解决方案。

另请阅读RFC 2617 - HTTP 身份验证中的第 4.1 章,了解有关为什么不使用基本身份验证的更多详细信息。


在查询字符串中传递身份验证参数

使用 OAuth 或其他身份验证服务时,您通常还可以在查询字符串中而不是在授权标头中发送访问令牌,例如:

GET https://www.example.com/api/v1/users/1?access_token=1234567890abcdefghijklmnopqrstuvwxyzABCD
Run Code Online (Sandbox Code Playgroud)

  • 您回答“有一个用于此目的的授权标头字段”的问题是询问如何将身份验证参数*放入 URL*。如果您不能将 HTTP 标头字段编码为 URL(您不能),那么您的答案是不合理的。 (3认同)
  • 你说的那个表格现在不是已经被弃用了吗? (2认同)
  • @Wilt:我必须道歉,你确实是对的。你暗示规范被“改变”促使我进一步调查(RFC 一旦发布/编号就永远不会修改)。我刚刚发现 RFC 2396 实际上已被 [RFC 3986](https://www.ietf.org/rfc/rfc3986.txt) 取代,我之前无法找到。RFC 3986 确实提到了用户名:密码语法的弃用:`不推荐在用户信息字段中使用“用户:密码”格式。` (2认同)