通过 URL 验证 HTTP 请求
Authenticating HTTP request through URL
我需要检索页面 https://server_addr:8080/v1/profile/+18017629094。身份验证凭据是 username=+18016364708
和 password=Wmsb7Ii00MHyqLAKlyIl+e0n
。
我尝试了 https://server_addr:8080/v1/profile/+18017629094?login=+18016364708&password=Wmsb7Ii00MHyqLAKlyIl+e0n
和一些其他模式,例如 https://+18017629094:Wmsb7Ii00MHyqLAKlyIl+e0n@server_addr:8080/v1/profile/+18017629094
。它仍然要求提供凭据。
如何通过 URL 本身进行身份验证?
RFC 3986 不赞成在用户信息字段中使用 "user:password"
格式。因此,一些现代浏览器不再支持 URL 基本访问凭据编码。应用程序不应将在 userinfo 子组件中找到的第一个冒号(“:”)字符之后的任何数据呈现为明文。出现在 userinfo 组件中的密码已被弃用并被视为错误或被忽略。
使用包含凭据的 HTTP 授权请求 header 来使用服务器对用户代理进行身份验证会更安全
Authorization: <type> <credentials>
例如,Authorization: Basic YWxhZGRpbjpvcGVuc2VzYW1l
或者,正如您已经尝试过的那样,您可以将用户凭据附加到 URL 作为查询参数,但这需要您在服务器端实现自己的用户身份验证逻辑。
由于您的用户名和密码包含 +
等保留字符,您是否尝试过 URL 在 URL 中对您的用户名和密码进行编码?
因此,在您的情况下,+18017629094
变为 %2B18017629094
,Wmsb7Ii00MHyqLAKlyIl+e0n
变为 Wmsb7Ii00MHyqLAKlyIl%2Be0n
。
我需要检索页面 https://server_addr:8080/v1/profile/+18017629094。身份验证凭据是 username=+18016364708
和 password=Wmsb7Ii00MHyqLAKlyIl+e0n
。
我尝试了 https://server_addr:8080/v1/profile/+18017629094?login=+18016364708&password=Wmsb7Ii00MHyqLAKlyIl+e0n
和一些其他模式,例如 https://+18017629094:Wmsb7Ii00MHyqLAKlyIl+e0n@server_addr:8080/v1/profile/+18017629094
。它仍然要求提供凭据。
如何通过 URL 本身进行身份验证?
RFC 3986 不赞成在用户信息字段中使用 "user:password"
格式。因此,一些现代浏览器不再支持 URL 基本访问凭据编码。应用程序不应将在 userinfo 子组件中找到的第一个冒号(“:”)字符之后的任何数据呈现为明文。出现在 userinfo 组件中的密码已被弃用并被视为错误或被忽略。
使用包含凭据的 HTTP 授权请求 header 来使用服务器对用户代理进行身份验证会更安全
Authorization: <type> <credentials>
例如,Authorization: Basic YWxhZGRpbjpvcGVuc2VzYW1l
或者,正如您已经尝试过的那样,您可以将用户凭据附加到 URL 作为查询参数,但这需要您在服务器端实现自己的用户身份验证逻辑。
由于您的用户名和密码包含 +
等保留字符,您是否尝试过 URL 在 URL 中对您的用户名和密码进行编码?
因此,在您的情况下,+18017629094
变为 %2B18017629094
,Wmsb7Ii00MHyqLAKlyIl+e0n
变为 Wmsb7Ii00MHyqLAKlyIl%2Be0n
。