向用户公开django admin有害?

如何解决向用户公开django admin有害?

| 我正在做一个Django电子商务项目,在此项目中,我同时拥有一个Customer模型和一个Merchant模型。 Merchant模型与MerchantStore模型相关联,该模型某种程度上“很复杂”,具有大量的m2m和与各种模型的外键关系。 按照本文中的解决方案,并且没有足够的“时间”来进行自定义实现,我决定让每个商家成为“工作人员”,并通过管理界面自定义其商店。当然,我创建了一个具有适当权限的新组。 但是,会出现一些问题: 1)这被认为有害吗?是否存在任何相关的安全威胁? 2)如果您没有足够的时间,这不是最好的方法吗?     

解决方法

不,我不会认为这有害。 如Apress的djangobook中所述,“管理员的禅宗”似乎暗示了对信任的假设,并将其作为管理员的“哲学”的一部分,并且与经常重复出现的“管理员不是您的管理员”配对应用建议”,一开始我也很害怕,并且认为Django文档可以指出预期的可行用例。 请为最终用户查看我几乎相同的问题Django AdminSite / ModelAdmin? 从乔丹的回答(我给了我赏金):   本质上没有什么特别的   关于管理员。它的行为就像任何   其他观点。所以如果使用   确定访问权限(针对   例如,如果您设置了用户的.is_staff   设为True,但仅授予他们访问权限   特定权限),那么它将是   对您可能使用的任何视图同样安全   创建使用权限来   确定访问权限。      ...      写的人   django.contrib.admin没有写   假设任何人   is_staff = True可以被信任为   就像超级用户一样,或者是愚蠢的   足以永远不要看   网页的源代码。虽然   鼓励您发表自己的看法,   它仍然是一个健壮的界面。 还要注意Django的相对较新的安全更新http://www.djangoproject.com/weblog/2010/dec/22/security/ 关于对象列表中的querystring参数。 这样的更新(引用:“有权访问管理员的攻击者”)清楚地表明,管理员对许可系统的实施正在受到严格审查。     ,是的,这被认为是“有害的”,主要是由于Django开发人员的设计考虑。管理员围绕“受信任的用户”的概念。换句话说,如果某人是工作人员(从而可以访问管理员),则他们大概拥有您的信任,不必担心安全漏洞。现在,实际上,您可以将它们从不应引起混乱的部分中阻止(如您所做的那样),但要点是Django在此方面不做任何保证。实际上,您可能不会有任何问题,但是可以。 具有讽刺意味的是,我认为自定义Django管理员花费的时间比我从头开始构建它要花费更多的时间。真有趣。不管怎样,我都希望它在Ruby on Rails中使用脚手架。这是使某些内容生效的快速方法,但目标是尽快将其替换。     

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?