HTTP身份验证与复杂URL

问题描述 投票:0回答:1

想象一下,我需要为安全的端点提供私有数据。将user1password1234一起考虑。之间的安全性是否有任何区别:

  1. https://website.com/myendpoint/user1/password1234

  2. [https://website.com/myendpoint具有HTTP Basic Auth,具有上面给出的凭据

在我看来,实际上没有什么区别,但是我对此没有任何具体/强烈的争论。

http security https http-authentication
1个回答
0
投票

确实存在显着差异。根据最佳做法,您不应在网址中包含任何敏感信息(更不用说密码了)。原因如下:

  • URL记录在服务器上(通常记录在文件上,但其他数据存储可能更糟),这可能使攻击者可以提取此数据,还应考虑例如备份。

  • URL可能会记录和/或检查中间代理。考虑使用https检查的公司代理。

  • URL缓存在客户端上,并添加到浏览器历史记录中。脚本或恶意用户已获得了对PC的访问权限,可能会从那里提取密码。即使目标客户端是程序化的,也要考虑出于某种原因希望通过浏览器使用您的应用程序或api的用户(用户很有创造力:))。

  • Url可能会在屏幕上看到。

当然,并非所有这些都适用于所有用例,但是其中一些您无法控制。因此,最好不要在网址中包含任何敏感数据。通过https进行Http基本操作会更好。

© www.soinside.com 2019 - 2024. All rights reserved.