2013-05-22 223 views
3

我正在编写一项服务,用户使用OAuth登录到其他服务。我的服务的重点是在用户未登录时为用户做一些维护工作。因此,我需要保存OAuth令牌,以便在用户未登录时使用它。如果用户已登录在中,我可以将用户的密码用作加密密钥(每次询问;用户的密码仅存储为散列)并存储加密的令牌。安全存储用户凭证令牌

但实际情况是,我需要Web服务在用户未登录时能够使用这些令牌。因此,我正在考虑将它们加密存储在数据库(AES)中,但随后解密密钥他们或者需要被硬编码到应用程序中,或者从其他东西(用户名/电子邮件/散列密码的组合)派生出来,尽管派生的逻辑仍然在源代码中。

鉴于这将用PHP编写,无法编译为隐藏密钥,我最好的选择是尽可能保证安全?我的源代码中一直有数据库证书,这意味着如果有人可以获得源coe,但有人拥有OAuth令牌意味着入侵者也可能在其他站点上弄乱用户的数据我的行为受到了损害,并且我想尽可能保证我的用户不会发生。

回答

1

首先使用OAuth令牌的部分原因是它们可以被撤销。像任何其他用户特定的数据一样保护令牌,这很好。如果您有理由相信您的用户数据在将来的任何特定时间点都会受到影响,请通知您的用户并要求他们撤销令牌。