Mok*_*Nex 2 authentication https http credentials
我尝试了https://myserver.com/~username=username&password=mypassword,但是它不起作用。
您能否确认可以通过HTTPs参数(GET或POST)传递用户/传递?
基本上,我想访问此链接https://www.globalnorm.net/gn/doc.php?name=ASTM%20F%202638:2012-00&erx=0(但我需要进行身份验证)如何传递我的用户名和URL中的密码?
关于浏览器是否已删除该功能和/或该功能是否已弃用似乎存在一些争议。但是,除非您的浏览器实际上已经删除了该功能,否则如上面 @nimrodm 的回答所述,您可以指定一个具有基本身份验证的 url,如下所示
http://user:password@domain.com/
Run Code Online (Sandbox Code Playgroud)
但是,您确实不应该使用 http 协议,因为这将以明文形式发送凭据。相反,只需使用:
https://user:password@domain.com/
Run Code Online (Sandbox Code Playgroud)
请注意,您必须对用户或密码字段中的特殊字符进行 urlencode(我经常在密码中使用“@”,因此必须将其写为“%40”)。
浏览器提取凭据,并将其通过 Authorization 标头传递到服务器:
Authorization: Basic credentials
Run Code Online (Sandbox Code Playgroud)
其中凭据只是 url 中写入的(url 解码的)字符串“用户名:密码”,但经过 base64 编码。但由于 https 连接是加密的,标头也被加密,并且凭据不会暴露在浏览器之外。
我认为有关删除支持或弃用该功能的整个问题是基于使用 http 协议指定凭据的安全影响。但随着免费 ssl 证书的出现以及“ssl 无处不在”的推动,如今这似乎不再是一个大问题。
当然,还有一个问题是,通过这种方式你能取得多少好成绩。许多或大多数需要登录的应用程序都希望从用户填写并通过 POST 请求发送的表单中获取凭据。必须编写应用程序来检查每个请求的标头Authorization,如果存在标头,则处理凭据的方式与通过填写的登录表单的 POST 指定的方式相同。
期望 HTTP 基本身份验证的应用程序通常是根据服务器配置中内置的要求来构建的,例如使用以下 Apache 指令:
<Directory "/htdocs/protected">
AuthName "Registered User"
AuthType Basic
AuthUserFile /lib/protected.users
require valid-user
</Directory>
Run Code Online (Sandbox Code Playgroud)
其中该文件/lib/protected.users是 Apache 实用程序生成的加密用户名和密码的文件htpasswd。通过此配置,/htdocs/protectedApache 会自动检查对以下资源的任何请求的Authentication标头。如果请求没有此类标头,或者标头中指定的凭据与 中的用户名和密码对之一不匹配/lib/protected.users,则服务器将使用401 Unauthorized状态和标头进行响应:
WWW-Authenticate Basic realm="Registered User"
Run Code Online (Sandbox Code Playgroud)
请注意,领域值“注册用户”是 Apache 配置中的 AuthName 值。浏览器通过显示请求用户名和密码的提示来处理此响应,提示中包含领域的值,以提示用户需要什么特定的用户名和密码。
浏览器必须对凭据进行特殊处理,将其转换为Authorization标头,因此它们还缓存它们,并每次将它们与请求一起发送到同一端点,例如发送 cookie。如果他们不这样做,那么用户必须在指定该端点的每个后续 url 上提供它们,以避免收到提示。
希望这可以帮助。
将基本身份验证传递给Web服务器的标准方法是使用以下形式的url:
http://user:password@domain.com/
Run Code Online (Sandbox Code Playgroud)
Web服务器不希望查询参数中具有基本身份验证。当然,您可以使用查询参数/ HTTP标头或任何其他方法来实现自己的身份验证。
您提供的特定URL重定向到https://www.globalnorm.net/login.php?ecd=S&info=nosessionorcookie&doc=...。
登录路径不返回WWW-Authenticate用于指示支持基本身份验证的标头。因此,尝试HTTP基本身份验证毫无意义。
这个特定的登录页面似乎期望/login.php带有USR,PAS参数的POST请求。答案可能包括一个cookie,该cookie以后将用于与服务器进行身份验证。
| 归档时间: |
|
| 查看次数: |
13857 次 |
| 最近记录: |