【发布时间】:2021-03-04 09:33:16
【问题描述】:
我正在尝试创建一个需要一些敏感数据的应用程序。现在在我的数据库中,我正在使用 python secrets 模块为每个对象创建一个安全的 16 字节十六进制令牌。但是,这样做我将无法散列它,因为它不再是整数了。所以我想知道如果我使用 secrets 模块将 id 暴露给最终用户是否足够安全?
例如,我在我的数据库中的一个表中有一个字段:
id = secrets.token_hex(16)
例如将返回id = cf125cf14d4ae9ed8972ee7512755e6d
或者我应该坚持使用自动递增整数的常规数据库主键,然后使用散列库来显示散列值,然后在我想使用它们时对它们进行解码?
【问题讨论】:
-
安全是相对的。您要防范哪些威胁?一旦确定存在哪些威胁,您就可以确定保护数据的最佳方法。
-
这是为了跟踪私人聊天室。所以在 URL 中,用户会看到聊天室的 id,这就是我要保护的内容。
标签: python python-3.x django database