【问题标题】:Mask URL in Django + React webAppDjango + React webApp中的掩码URL
【发布时间】:2021-03-20 16:09:28
【问题描述】:

我想通过邮件与客户共享一个页面,如下所示:

https://blabla.com/docket/2443

但如果我这样做,他们只需更改案卷编号即可访问所有其他页面。即2443 在这种情况下。 我尝试使用tiny-url,但它没有用。有什么办法可以屏蔽网址来解决上述问题?

【问题讨论】:

  • 使用 uuid 而不是整数自动字段作为主键
  • @VaibhavVishal 请详细说明?
  • 在您的模式中,您可以添加一个 id 字段作为主键并将其默认值设置为 uuid.uuidv4。默认情况下,django 使用自动字段作为主键,所以它就像 1、2、3、4 ...,但是如果你使用 uuid,主键将是不可猜测的

标签: python reactjs django url


【解决方案1】:

这个问题有多种解决方案。

  1. 如果该端点需要登录并与用户相关,您可以向该端点添加权限,使其只有与其相关的用户可以访问。

  2. 如果是公共 URL,您可以使 id 比整数更复杂,您可以将 id 字段设置为 UUIDField,这样就很难猜出任何其他文档 ID。

【讨论】:

  • 我已经创建了 2000 多个案卷,所以如果我添加一个 UUID 字段那么我如何填写所有这些?
  • id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False),现在运行python manage.py makemigrations,然后运行python manage.py migrate,它将运行先前创建的记录的默认值。您可以在本地对其进行测试,以确保它不会损害您的数据。
  • 我刚刚运行了迁移,它说` - 从分配中删除字段 id - 将字段 uid 添加到分配中` 我在我的代码中多次使用了 id。我们可以添加UUID而不删除id
  • id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False),应该这样,你必须指定这个字段是primary_key
  • 在上面的代码中是真的..它试图删除`id
猜你喜欢
  • 2010-10-04
  • 2010-11-25
  • 2011-04-27
  • 1970-01-01
  • 1970-01-01
  • 2019-04-12
  • 2011-06-08
  • 1970-01-01
  • 2016-11-20
相关资源
最近更新 更多