【发布时间】:2010-11-08 19:27:26
【问题描述】:
我有一个看起来像这样的 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 随机生成的。然后 URL 将类似于 /people/status/<id>/<obfuscated_key>/。但也许有更好的方法来解决这个问题?
【问题讨论】:
-
在这种情况下,您要么关心安全性并应该使用真实登录,要么您不关心并且可以跳过混淆步骤。无论哪种方式都优于通过默默无闻的安全性。如果你真的想假装它很有用,你可以使用你想要隐藏的东西的哈希值。
-
@Nathon:绕开态度——“想假装它有用”对我来说听起来既夸张又自命不凡——我相信你的观点很好。真诚地感谢你。非常感谢。这种类型的混淆通常用于生命周期较短的页面,例如密码重置。也许我应该重新考虑它是否符合我的目的。感谢您的意见。
-
@Nathon:一些随机哈希和登录+密码有什么区别?如果有人猜到或拦截其中任何一个,无论如何你都完了。
标签: django obfuscation django-urls