【发布时间】:2020-01-11 21:11:57
【问题描述】:
想象一下,我需要提供一个带有私有数据的安全端点。考虑user1 和password1234。两者之间的安全性有什么区别:
https://website.com/myendpoint 使用 HTTP 基本身份验证和上面给出的凭据
在我看来实际上没有区别,但我没有任何具体/有力的论据。
【问题讨论】:
标签: http security https http-authentication
想象一下,我需要提供一个带有私有数据的安全端点。考虑user1 和password1234。两者之间的安全性有什么区别:
https://website.com/myendpoint 使用 HTTP 基本身份验证和上面给出的凭据
在我看来实际上没有区别,但我没有任何具体/有力的论据。
【问题讨论】:
标签: http security https http-authentication
确实有很大的不同。根据最佳实践,您不应在 url 中包含任何敏感信息(更不用说密码)。 原因如下:
网址会记录在服务器上(通常记录到文件,但其他数据存储可能更糟),这可能允许攻击者提取这些数据,例如备份。
可能会在中间代理上记录和/或检查 URL。考虑使用 https 检查的公司代理。
URL 缓存在客户端并添加到浏览器历史记录中。已获得对 PC 的访问权限的脚本或恶意用户可能会从那里提取密码。即使预期的客户端是程序化的,也请考虑出于任何原因想要通过浏览器使用您的应用或 API 的用户(用户非常有创意 :))。
可能会在屏幕上看到网址。
当然,并非所有这些都适用于所有用例,但其中一些您无法控制。因此,最好不要在您的网址中包含任何敏感数据。 Http basic 优于 https。
【讨论】: