我正在编写一个服务,用户使用 OAuth 登录另一个服务。我的服务的重点是在用户未登录时为他们做一些维护工作。因此,我需要保存他们的 OAuth 令牌,以便在用户未登录时可以使用它。如果用户已登录在中,我可以使用用户的密码作为加密密钥(每次都要求;用户的密码仅存储为哈希)并存储加密的令牌。
但事实上,我需要 Web 服务能够在用户未登录时使用这些令牌。所以,我正在考虑将它们加密存储在数据库 (AES) 中,但是解密它们的密钥要么需要硬编码到应用程序中,或者从其他东西(用户名/电子邮件/哈希密码的组合)派生,尽管该派生的逻辑仍然在源代码中。
鉴于这将用 PHP 编写,无法编译以隐藏密钥,那么我最好的选择是什么以使其尽可能安全?我的源代码中始终包含数据库凭据,这意味着如果有人可以获取源 coe,他们可能会弄乱该数据库,但是手头有 OAuth 令牌意味着入侵者也可能会弄乱其他站点上的用户数据,如果我的受到了损害,我想尽可能多地向我的用户保证不会发生这种情况。