如何将 ISAPI 扩展中的请求链接到 ISAPI 过滤器中的响应?

发布于 2024-11-28 05:15:02 字数 435 浏览 1 评论 0原文

我正在为 IIS6 构建一个 http 嗅探器,为此我同时使用 ISAPI 过滤器和 ISAPI 扩展。 扩展 - 读取请求。 过滤器 - 读取响应。

我使用扩展的原因是我不想强制用户更改为 IIS5 兼容模式,因此无法订阅 SF_NOTIFY_READ_RAW_DATA。

问题是,当我读取响应时,我想将其链接到请求,因此我需要为请求提供唯一标识符,并在读取响应时使用它。

我读过,曾经有一个选项可以使用 SF_REQ_GET_CONNID 调用 ServerSupportFunction,但 IIS6 不支持该选项。

我还读到,一个可能的解决方案是附加客户标头,然后将其删除 - 这可能会起作用,但似乎没有我希望实现的那么优雅。

有没有办法获取过滤器中的连接ID(EXTENSION_CONTROL_BLOCK中的connID)?

感谢您的回复, 萨吉夫

I'm building sort of a http sniffer for IIS6, for that I'm using both ISAPI filter and ISAPI extension.
Extension - to read the request.
Filter - to read the response.

The reason i'm using extension is that I don't want to force the user to change to IIS5 Compatibility Mode and therefore can't subscribe to SF_NOTIFY_READ_RAW_DATA.

The thing is, when I read the response, I want to link it to the request, so I need to give a unique identifier to the request, and use it when reading the response.

I have read that there used to be an option to call ServerSupportFunction with SF_REQ_GET_CONNID, but that's not supported in IIS6.

Also I have read that a possible solution is to append customer header and then remove it - that would probably work, but seems less elegant than I hoped to implement.

Is there any way to get the connection ID (connID in EXTENSION_CONTROL_BLOCK) in the filter?

appreciate your response,
Sagiv

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

云胡 2024-12-05 05:15:02

几个月前我也遇到了同样的问题。

我执行了以下操作来解决该问题:

  1. 在 HttpFilterProc(ISAPI 过滤器)上,我查找通知 SF_NOTIFY_PREPROC_HEADERS。
  2. 然后,我将自己的标头和 GUID 注入到请求中。
  3. 在 HttpExtensionProc(ISAPI 扩展)上,我读取标头并提取 GUID。
  4. 然后我读取请求内容并将其与 GUID 连接起来。
  5. 在 OnSendRawData(ISAPI 筛选器)上,我读取(分块的)响应内容并再次将其与 GUID 连接。

这样我就可以链接请求内容(来自扩展)和响应内容(来自过滤器)!

I had the same problem a few months ago.

I did the following to solve the problem:

  1. On HttpFilterProc (ISAPI Filter) I looked for notification SF_NOTIFY_PREPROC_HEADERS.
  2. I then injected my own header with a GUID to the request.
  3. On HttpExtensionProc (ISAPI Extension) I read my header and extract the GUID.
  4. I then read the request content and connected it with the GUID.
  5. On OnSendRawData (ISAPI Filter) I read the (chunked) response content and again connect it with the GUID.

This way I have both the request content (from the Extension) and the response content (from the filter) linked!

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文