medium.com(例如)如何生成 URL 片段哈希?

Ina*_*ist 5 website javascript tracking

是否有人确定了 medium.com(或其他流行网站)使用的脚本或技术在 URL 片段之后生成似乎是唯一哈希值的内容?

人为的例子: #.lfr25xei4

它们随着每次页面刷新而变化(至少以我的经验)。

(我考虑过在 Stack Overflow 上问这个问题,但不确定它属于那里。)

pio*_*r.d 3

我知道这个问题发布已经有几个月了,但我对同样的事情很感兴趣,这是我的发现。

哈希值是在客户端用 Javascript 生成的,并且基于当前时间戳。代码如下所示:

hash = generateHash().substr(0, 9)

generateHash = function() {
  return Math.floor(2147483648 * Math.random()).toString(36) + 
    Math.abs(Math.floor(2147483648 * Math.random()) ^ (0, getTimestamp)()).toString(36)
}

getTimestamp = Date.now || function() {
  return +new Date
}
Run Code Online (Sandbox Code Playgroud)

(为了清晰起见,函数已被重命名)

  • 随机哈希有什么意义?我觉得这真的很烦人。我无法判断我是否已经为某个页面添加了书签,除非我将哈希值替换为一致的内容,例如“#nada”。由于它是一个 URL 片段,服务器永远看不到它,因此必须在 XHR API 调用中使用它。我以为它是用于推荐人跟踪,但这也没有意义...... (2认同)
  • 这很烦人,我也把锚剪掉了。服务器确实看到了它,因为 JS 在一些 Ajax 请求中发送了它。我在例如“https://medium.com/_/batch”中找到了它,所以我非常确定它用于跟踪谁共享了哪个 URL,这样他们就可以找出推荐树。因此,如果这回答了您原来的问题,请接受答案。谢谢。 (2认同)