【问题标题】:Django - permissions api - should I encrypt permissions tokens in database for security?Django - 权限 api - 我应该加密数据库中的权限令牌以确保安全吗?
【发布时间】:2012-06-01 13:16:22
【问题描述】:

我正在构建一个使用公共 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 中,这意味着应用程序的安全性同样取决于我们设置文件的保密性。

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

感谢您的帮助。

【问题讨论】:

    标签: django security encryption


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 2011-03-10
      • 2016-08-11
      • 2013-04-30
      • 1970-01-01
      • 2012-07-06
      • 1970-01-01
      • 2015-08-16
      • 1970-01-01
      • 2018-11-19
      相关资源
      最近更新 更多