我认为这是不可能的,但我认识的一个人坚持认为这是可行的。我甚至不知道要尝试哪些参数,而且我还没有在任何地方找到这方面的记录。
我试过http://myserver.com/~user=用户名&密码=我的密码但它不起作用。
您能否确认实际上无法通过 HTTP 参数(GET 或 POST)传递用户/密码?
答案1
在标准 HTTP 身份验证中,确实无法通过查询参数传递用户名和密码。相反,您可以使用特殊的 URL 格式,如下所示:--这会在标准 HTTP“授权”标头中发送凭据。http://username:[email protected]/
可能你正在与之交谈的人正在考虑一个自定义模块或代码,用于查看查询参数并验证凭据。但这不是标准的 HTTP 身份验证,而是特定于应用程序的事情。
答案2
http://用户名:[电子邮件保护]适用于 FireFox、Chrome、Safari,但不适用于 IE。
答案3
不建议在 URL 中传递基本身份验证参数
有一个用于此目的的授权标头字段,请在此处检查: http 标头列表
如何使用它写在这里: 基本访问认证
您还可以看到,尽管某些浏览器仍支持它,但不建议在 URL 中添加基本授权凭据的建议解决方案。
另请阅读RFC 2617 第 4.1 章 - HTTP 身份验证有关为什么不使用基本身份验证的更多详细信息。
在查询字符串中传递身份验证参数
当使用 OAuth 或其他身份验证服务时,您通常也可以在查询字符串而不是授权标头中发送访问令牌,因此如下所示:
GET https://www.example.com/api/v1/users/1?access_token=1234567890abcdefghijklmnopqrstuvwxyzABCD
答案4
显然,可以在 GET 参数中发送任何字符串,但不建议发送登录名和密码,因为这可能会使其非常明显,特别是如果它不在 AJAX 请求中。
但是,您需要对服务器页面进行编码以提取登录名和密码,然后以所需的方式验证和使用它们。