向用户公开django admin。有害?

时间:2011-05-20 21:12:12

标签: django django-admin

我正在开发一个Django有点电子商务项目,简而言之,我有一个Customer和Merchant模型。 Merchant模型与MerchantStore模型相关联,该模型在某种程度上“复杂”,具有过多的m2m和与各种模型的外键关系。

根据此post中的解决方案并且没有足够的“时间”来进行自定义实施,我决定让每个商家成为“填充成员”并通过管理界面自定义他的商店。在cource中,我创建了一个具有适当权限的新组。

然而,出现了一些问题:

1)这被认为有害吗?是否存在相关的安全威胁?

2)如果你还没有足够的时间,这不是最好的方法吗?

2 个答案:

答案 0 :(得分:9)

不,我不认为这有害。

Apress的djangobook中所描述的“管理之禅”似乎意味着信任的假设是管理员“哲学”的一部分,并且与经常重复的“管理员不是你的应用程序”建议配对,我也害怕首先,并认为Django文档可以指出预期的,可行的用例。

请参阅我几乎完全相同的问题Django AdminSite/ModelAdmin for end users?

从约旦的回答(我给予赏金的人):

  

没有什么特别的天赋   关于管理员。它表现得像任何一样   其他观点。所以,如果它正在使用   确定访问权限(for   例如,如果您设置用户的.is_staff   为真,但只允许他们访问   具体权限)然后它会   同样安全的任何视图你可能   创建使用权限   确定访问权限。

     

...

     写作的人   django.contrib.admin没有写它   假设任何人都有   一个is_staff = True可以信任为   像超级用户一样,或者是愚蠢的   足以永远不去看看   网页的源代码。虽然   鼓励写自己的观点,   它仍然是一个强大的界面。

另请注意Django最新的安全更新http://www.djangoproject.com/weblog/2010/dec/22/security/ 关于对象列表中的查询字符串参数。

这样的更新(引用:“有权访问管理员的攻击者”)清楚地表明管理员对权限系统的实施正在不断受到审查。

答案 1 :(得分:6)

是的,这被认为是“有害的”,主要是由于Django开发人员的设计考虑因素。管理员围绕“可信用户”的概念。换句话说,如果有人是工作人员(从而可以访问管理员),他们可能有足够的信任而不必担心安全漏洞。事实上,你可以阻止他们从他们不应该捣乱的部分(如你所做的那样),但重点是Django在这方面不做任何保证。实际上,您可能不会有任何问题,但可以

具有讽刺意味的是,我认为我在生活中花费了更多时间来定制Django管理员,而不是从头开始构建它。有趣的是如何。无论如何,我把它比作在Ruby on Rails中使用脚手架。这是一种快速获取实物的方法,但目标是尽快更换它。