language-agnostic - 通常在 URL 中始终散列唯一标识符是个好主意吗?

标签 language-agnostic url

大多数使用自动递增主键的站点都在 url 中公开显示它。

example.org/?id=5

这使得任何人都可以很容易地通过简单地增加 id 的值来抓取站点并收集所有信息。我能理解在某些情况下,如果权限/身份验证设置不正确并且任何人都可以通过简单地猜测 ID 来查看任何内容,这在某些情况下是一件坏事,但这曾经是一件的事情吗?

example.org/?id=e4da3b7fbbce2345d7772b0674a318d5

是否存在过对 id 进行哈希处理以防止抓取的不良做法(除了浪费设置此功能所需的时间之外)?还是这都是一个没有实际意义的话题,因为通过将某些东西放到网上,您就接受了它被盗/开采的风险?

最佳答案

一般来说,您尝试让网站易于抓取并访问所有信息,以便获得良好的搜索排名并增加网站访问量。优秀的 Web 开发人员在设计 HTML 时会考虑搜索引擎,并且通常还会提供 RSS 提要和站点地图等内容,以便更轻松地抓取内容。因此,如果您试图通过不使用顺序标识符来使爬行变得更加困难,那么 (a) 您并没有使爬行变得更加困难,因为爬虫是通过跟踪链接而不是通过猜测 URL 来工作的,并且 (b) 您正在尝试让事情变得更难,同时你还花时间试图让它变得更容易,这是没有意义的。

如果您需要安全性,请使用真正的安全性。使用主体检查来授权或拒绝对资源的访问。混淆 URL 根本没有安全性。

所以我没有发现使用数字标识符有任何问题,也没有看到任何试图混淆它们的值。

关于language-agnostic - 通常在 URL 中始终散列唯一标识符是个好主意吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1752350/

相关文章:

Angular 7 - 使用 queryParams 定义路由

c# - 如何发送带有查询字符串的 URL 作为查询字符串

language-agnostic - 如何更正用户输入(Google的种类“您的意思是?”)

language-agnostic - 面向对象风格的编程,用于对象之间的交互

unit-testing - 什么是 "Unit"?

python - 如何编写 url 模式。 python , Django

jquery - 如何在加载后删除部分 URL

r - 使用 R 进行快速 url 查询

language-agnostic - 实体的 id 作为构造函数参数还是通过 setter 方法?

java - SUPER 类应该从它的 SUBCLASS 中获取函数和属性。在Java中有可能吗?