我有一个Django的模型,看起来是这样的:混淆后的Django网址为模型对象
class Person(models.Model):
name = models.CharField(max_length=32)
place = models.ForeignKey(Place, related_name='people')
approved = models.BooleanField()
objects = PersonManager()
@models.permalink
def get_absolute_url(self):
return('deal_details',(), {
'person_slug': slugify(self.name),
})
正如你可以看到,我已经有对象的绝对URL。但是,我想创建一个难以猜测的URL来跟踪对象的审批流程。任何人做了类似的事情和/或对我应该如何着手有任何建议?
我的第一个想法是创建一个模型字段,如obfuscated_key
,它是通过save
function of the model随机生成的。然后该网址看起来像/people/status/<id>/<obfuscated_key>/
。但也许有更好的方法来解决这个问题?
要么你在这种情况下,对安全性和应使用真正的登录,或者你不能,也可以跳过混淆步骤。无论哪种方式都比默默无闻地优于安全。如果你真的想假装它是有用的,你可以使用你试图隐藏的东西的散列。 – nmichaels 2010-11-08 19:48:53
@Nathon:绕过这种态度---“想要假装它是有用的”听起来对我来说是一种增强和缺点 - 我相信你能说得很好。真诚的谢谢你。多谢。这种混淆通常用于短期寿命页面,如密码重置。也许我应该重新思考它是否符合我的目的。感谢您的意见。 – 2010-11-08 20:41:43
@Nathon:一些随机散列和登录+密码有什么区别?如果有人猜测或拦截他们中的任何一个,无论如何你都完成了。 – 2010-11-08 23:47:28