Django - 权限api - 我应该加密数据库中的权限令牌以确保安全吗?

时间:2012-06-01 01:06:37

标签: django security encryption

我正在构建一个使用公共API的应用程序。 api允许我们使用权限代表不同应用的用户执行操作;我们以tokensecret的形式从用户处收集权限,我们会使用这些权限对其进行身份验证并执行操作。

我们将tokensecret存储在我们的数据库中。它们是专门为我们的api应用程序生成的,所以每当我们需要使用api为用户执行操作时,我们还需要提供自己的api凭据。所以有些东西:

from myapp.settings import API_APPID, API_PASS
user.perform_action(api_appid=API_APPID, api_pass=API_PASS, permissions_token=user.permissions_token, permissions_secret=user.permissions_secret)

(实际上,我们使用权限令牌/秘密生成身份验证标头)。

我想知道我们是否应该加密数据库中的权限令牌/秘密?我最初的想法是否定的,因为没有我们自己的api凭证(存储在我们的settings.py中),权限令牌和密码是无用的

如果我们要加密令牌,我们将把我们的私钥存储在settings.py中,这意味着应用程序的安全性将依赖于我们设置文件的保密性。

有什么想法?是否有充分的理由加密这些令牌,或者我认为它是多余的?

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

不是真的。如果有人破坏了您的应用程序服务器,他们就拥有获取令牌所需的密钥以及(作为服务器)查询数据库的能力,无论如何。

如果您不需要单独的API密钥,则可以防止简单的SQL注入。但是,正如您所说,API意味着学习令牌的攻击者不会学到任何有用的东西。当然,这是假设令牌不包含像用户密码那样敏感的内容。