处理机密信息¶
概述¶
有两种数据结构可用于帮助处理 Web 服务中的机密信息:
SecretString 和 SecretBytes。
这些是用于在应用程序中保存敏感数据的容器。
机密参数¶
以下示例演示如何使用 SecretString 在 GET 请求中接受机密值作为参数:
备注
在存储和比较机密信息时,请使用安全的做法来防止未经授权的访问。例如,使用环境变量、
机密管理服务或加密数据库来安全地存储机密信息。在比较机密信息时,使用
secrets.compare_digest() 或类似方法来减轻时序攻击的风险。
备注
ASGIConnection 对象的 headers 属性
按照从 ASGI 消息解析的原样存储 headers。应注意确保这些 headers 不会以可能危及应用程序安全性的方式被记录或以其他方式暴露。
机密请求体¶
此示例演示使用具有 SecretString 字段的数据结构在请求的 HTTP 正文中接受机密信息:
安全注意事项¶
虽然 SecretString 和 SecretBytes 可以帮助通过框架安全地传输机密数据,
但在应用程序中存储和比较机密信息时采用安全做法至关重要。以下是一些指导原则:
安全地存储机密信息,使用环境变量、机密管理服务或加密数据库。
始终使用恒定时间比较函数,如
secrets.compare_digest()来比较机密值, 以减轻时序攻击的风险。实施访问控制和日志记录以监视和限制谁可以访问敏感信息。