【发布时间】:2015-03-05 09:00:51
【问题描述】:
我正在使用 Postgres 数据库运行 Django。除了应用程序级别的安全检查之外,我正在考虑添加数据库级别的限制。例如。应用程序代码应该只能插入到日志表中,而不能从它们中更新或删除。
我会为此手动创建具有适当授权的数据库用户。我还需要一个更强大的用户来运行数据库迁移。
我的问题是,人们会这样练习吗?关于在 Django 中使用受限数据库用户的任何建议和最佳实践?
编辑:澄清一下,没有技术问题,我只是想听听其他人的经验和收获。一个 Django 特定的事情是,我需要至少两个 DB 用户:正常操作和运行迁移。我在哪里存储更多特权用户的凭据?也许让manage.py migrate 提示输入密码?
至于推理,假设我的应用存在 SQL 注入漏洞。使用特权用户,攻击者可以执行诸如删除所有表之类的操作。对于更有限的用户,潜在的损害会稍小一些,然后在仅插入的日志表中就有一些证据。
【问题讨论】:
-
这个问题似乎与编程无关,至少在 StackOverflow 的范围内。推荐图书馆和场外资源是题外话。
-
这是“如何用 Django 做 'X'?尝试用 Django 做 'X' 是不是一个明智的想法?”问题的类型。有没有更适合这个问题的 StackExchange 网站?
-
我认为没有比这更好的 SE 网站了。聊天可能有助于获得答案或重写问题以使其更具话题性。
-
我不明白这个问题。如果你想添加数据库级别的限制,那就去做吧。这与 Django 无关。就我个人而言,我不明白其中的原因,因为您的应用程序应该决定谁来控制什么,而 Django 的安全检查应该足够了,即使没有,也有很多库可以扩展基本身份验证后端并为您提供更多控制权。话虽如此,在 db 级别添加安全检查可能只是意味着您必须处理使用 django 管理数据库时遇到的任何问题
标签: python django database postgresql security