【问题标题】:Extract or generate X-Client-TraceId for header in GET-request为 GET 请求中的标头提取或生成 X-Client-TraceId
【发布时间】:2021-11-17 15:35:27
【问题描述】:

我想通过 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-Client-TraceId: d2d6911d81ebbbff7a7549555a2c26d6

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

许多问候,

特雷伯

【问题讨论】:

    标签: json rest header reverse-engineering


    【解决方案1】:

    自从提出这个问题以来,有人写了a blog post 关于这个确切的主题。那里详述的算法似乎仍在使用中(截至 2022-03-12)。

    相关部分的摘录:

    客户日期

    这是当前时间,通过 Javascript 的 toISOString() 函数转换为字符串。

    [...]

    X-Client-TraceId

    [...]

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

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


    这篇博文包含一些关于逆向工程此算法和X-Security 标头的过程的附加信息。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-11-14
      • 2015-11-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-08-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多