Django和解决德国坦克问题

时间:2014-11-11 23:53:58

标签: django django-models

我希望无法在django托管网站上找到确切的用户数(称为German Tank Problem)。默认情况下,django会分配连续的用户ID,因此目前任何人都可以创建一个帐户,然后通过html / ajax请求查看自己的用户ID,这是用户注册时的用户数。

有问题的网站的代码库足够大,用户ID经常在ajax调用中使用,逐案解决方案是禁止的(解决方案是:找到每个地方使用用户ID并使用一些哈希代替)。是否有更清洁/更快的方法来实现这一目标?

2 个答案:

答案 0 :(得分:0)

如果您只想混淆注册数,可以通过将用户ID值捏造为大数来对其进行模糊处理。这不会阻止某人通过间隔创建多个帐户来插入您的注册费率,从而了解您的实际数字,但您的问题是阻止查看用户总数

答案 1 :(得分:-1)

使用 slug 代替调用的行ID。

  • 如果您使用django通用的基于类的视图(UpdateView,DetailView等等),替换应该很容易,因为它们会考虑'pk'或'slug'url参数来检索对象。 / p>

  • 这是人类可读和SEO友好。

Slugify方法有助于创建它们。