提取或生成 GET 请求中标头的 X-Client-TraceId

t1n*_*tus 5 rest json reverse-engineering header

我想通过 REST API 从以下站点检索一些历史股票价格:

https://www.boerse-frankfurt.de/zertifikat/de0007873291-open-end-zertifikat-auf-dow-jones-industrial-average

响应是 JSON。

基本上,查询可以按如下方式完成:发送不带参数的 OPTIONS 调用,然后发送带标头参数的 GET 请求。

两个呼叫均发送至以下地址:

https://api.boerse-frankfurt.de/v1/data/quote_history_derivatives?isin=DE0007873291&mic=XSC&from=2021-11-12T07%3A00%3A00.000Z&to=2021-11-12T21%3A00%3A00.000Z&offset=0&limit= 25

标头中包含以下两个参数:

  • 客户日期:2021-11-16T23:02:29.529Z
  • X-客户端-TraceId:d2d6911d81ebbbff7a7549555a2c26d6

现在我的问题是:如何获取 X-Client-TraceId?看起来像一个UUID,但又好像不是。该值会随着浏览器中的每个页面视图而变化。但您不能只输入任何值。

许多问候,

特雷博尔

sk_*_*ant 3

自从提出这个问题以来,有人写了一篇关于这个主题的博客文章。那里详细介绍的算法似乎仍在使用中(截至 2022 年 3 月 12 日)。

\n

相关部分摘录:

\n
\n

客户日期

\n

这是当前时间,使用 Javascript\xe2\x80\x99s toISOString() 函数转换为字符串。

\n

[...]

\n

X-客户端-TraceId

\n

[...]

\n
    \n
  • salt是一个固定字符串,在本例中为w4icATTGtnjAZMbkL3kJwxMfEAKDa3MN。显然它按原样出现在源代码中,因此它必须是恒定的。
  • \n
  • X-Client-TraceId 是time + url + salt.
  • \n
\n
\n

注意:time是在标头中发送的字符串Client-Date

\n
\n

该博客文章提供了有关对该算法和标头进行逆向工程的过程的一些附加信息X-Security

\n