1

我需要解决仅在生产中出现的错误,我希望使用https://goreplay.org/shadowing.html方法。理论上这一切听起来很神奇,但仔细考虑之后,我认为这次尝试会失败。

有问题的应用程序使用用户会话、CSRF 令牌等。这不会使重放失败吗?会话是 CSRF 令牌专门设计用于使我尝试做的事情失败。

例如,假设我正在将用于服务器 A 的真实流量重播到服务器 B:

  • Request1A: POST login&user=test&password=pass
  • Request1B: POST 登录&user=test&password=pass
  • Response1A:SESSION=1234(随机生成)
  • Response1B:SESSION=9876(随机生成)
  • 请求 2A:获取 COOKIE:会话 = 1234
  • Request2B: GET COOKIE:SESSION= 1234(仅重放请求,因此它不知道在重放期间它必须使用会话 9876 - 所以它失败了)

问题是,对于有状态的应用程序,这是一条双向街道,不是吗?下一个请求取决于上一个响应,我不能只是重播它并期望它起作用。

这是否意味着阴影方法仅适用于无状态 HTTP API?- 文章没有说明这种限制。还是我完全误解了这一切?

如果我理解正确,是否有技巧可以使这项工作正常进行?或者这是因为安全措施使这成为不可能而设计的?

4

0 回答 0