Credentials exposed in URLs
URL 中暴露的凭据
描述
URL 中的凭据可能存储在不同位置,包括用户设备、Web 服务器以及这两个端点之间的任何正向或反向代理服务器中。URL 也可能显示在屏幕上、被加入书签或由用户通过电子邮件发送。当点击任何站外链接时,它们可能会通过 Referer 标头泄露给第三方。将无状态会话令牌放入 URL 中会增加其被攻击者捕获的风险。
建议
为了避免在应用程序日志和/或后端服务器日志中泄露凭据,请考虑以下建议:
- 避免在 URL 中存储凭据: 只要有可能,请尽量避免将敏感信息(如会话令牌)直接放置在 URL 中。
- 使用安全的会话管理: 实施安全的会话管理技术,不依赖于在 URL 中嵌入凭据。相反,请使用诸如带有适当安全配置的会话 Cookie 之类的方法。
- 在传输过程中加密敏感数据: 使用 HTTPS 等加密协议,以确保敏感数据(包括包含凭据的 URL)在用户设备和 Web 服务器之间的传输过程中得到加密。
- 实施 URL 脱敏: 实施机制以自动从显示在屏幕上或记录在日志中的 URL 中脱敏或混淆敏感信息(如凭据),以最大限度地降低暴露风险。
链接
- CWE-200: Information Exposure
- CWE-598: Information Exposure Through Query Strings in GET Request
- CWE-384: Session Fixation
- CWE-359: Exposure of Private Information ("Privacy Violation")
标准
- OWASP_MASVS_L1:
- MSTG_AUTH_3
- OWASP_MASVS_L2:
- MSTG_AUTH_3
- PCI_STANDARDS:
- REQ_2_2
- REQ_6_2
- OWASP_MASVS_v2_1:
- MASVS_AUTH_1
- SOC2_CONTROLS:
- CC_2_1
- CC_4_1
- CC_7_1
- CC_7_2
- CC_7_4
- CC_7_5
- HIPAA_CONTROLS:
- SECURITY252
- SECURITY212
- SECURITY213