命名编辑页面URL的最佳实践

时间:2018-01-17 05:17:40

标签: url url-design

我有一个包含广告系列的网站,每个广告系列都有多个调查。

如果我要修改广告系列,则会显示名为

的网址
campaign/edit/1

如果我想在广告系列中修改某个调查,我会有一个名为

的网址
campaign/edit/1/survey/edit/3

我的页面将获取ID为1的广告系列数据和ID为3的调查。

虽然这有效,但我想知道是否确实存在某种更适合这种情况的约定,或者这样的网址是否合适?

2 个答案:

答案 0 :(得分:1)

你做得很好。但是你也可以通过将网址引导到不同的页面来简化它。 快乐的编码!

答案 1 :(得分:1)

虽然对于赌注较低的小型网站来说这是完全可以接受的,但还有其他方法可以做到更安全。例如,请注意如果您转到网上的Instagram帖子,URL是“https://www.instagram.com/p/BeB6HbqA8TEYRi7-I0X3neNZ2tw0irKoVdUCbg0”,其中/ p /后面的字符串是图像的ID。这是哈希而不是数字。他们可以将URL设为图像的编号ID,但这可能会导致出现问题,您可以根据图像的相对于其他图像发布的时间等来预测图像的ID,从而暴露出后端的一部分,即您不会通常想曝光。

在您的情况下,您可以让用户将URL中的ID从1和3更改为其他数字,并且可能它们是数据库中的有效ID,因此它们会显示一个他们可能不应该使用的表单能够访问。

因此,Web框架可以让您指定希望数据库对象生成UUID(随机散列)并将其用作密钥(例如Django's UUIDField)。然后,您可以在URL中使用UUID,从而阻止任何人生成可能的URL。