使用 chrome 显示来自 LSP 的 http 阻止页面

发布于 2024-11-08 14:22:38 字数 754 浏览 2 评论 0原文

我修改了微软的LSP(Winsosk分层服务提供商)示例来制作桌面Web过滤器应用程序。我可以通过将 http 标头中的主机与文件中的禁止网站列表进行比较来阻止对网站的访问。如果某个网页被阻止,LSP 将用 html 页面填充缓冲区,显示该页面被禁止。我在 Firefox 4、Opera 11 和 IE 6 上进行了测试,并显示了一个阻止页面。然而,这样的页面在Chrome 11(最新)中没有显示。

我想知道 Chrome 是否以不同的方式处理 LSP。

这是我输入 LSP WSPRecv 函数的缓冲区。

    string strBufferHdr;
    char len[10];
    _itoa_s (strBufferHTML.size(), len, 10);

    strBufferHdr += "HTTP/1.1 200 OK\r\n";
    strBufferHdr += "content-type: text/html; charset=UTF-8\r\n";
    strBufferHdr += "connection: close\r\n";
    strBufferHdr += "content-length: ";
    strBufferHdr += len;
    strBufferHdr += "\r\n\r\n";
    strBufferHdr += strBufferHTML;
    strBufferHdr += "\n\n\n";

strBufferHTML是html页面内容。

谢谢。

I have modified Microsoft's LSP (Winsosk Layered Service Provider) example to make web filter application for desktop. I am able to block access to websites by comparing host in http header to a list of banned websites in a file. If a web is blocked, LSP will fill the buffer with html page showing that this page is banned. I tested on Firefox 4, Opera 11 and IE 6, and a block page is shown. However, such page not shown in Chrome 11 (the latest).

I wondered if Chrome handle LSP differently.

This is buffer that I feed into LSP WSPRecv function.

    string strBufferHdr;
    char len[10];
    _itoa_s (strBufferHTML.size(), len, 10);

    strBufferHdr += "HTTP/1.1 200 OK\r\n";
    strBufferHdr += "content-type: text/html; charset=UTF-8\r\n";
    strBufferHdr += "connection: close\r\n";
    strBufferHdr += "content-length: ";
    strBufferHdr += len;
    strBufferHdr += "\r\n\r\n";
    strBufferHdr += strBufferHTML;
    strBufferHdr += "\n\n\n";

strBufferHTML is a html page content.

Thank you.

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

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

发布评论

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

评论(1

浅唱ヾ落雨殇 2024-11-15 14:22:38

Chrome 使用重叠 I/O,因此除了 spi.cpp 之外,您还需要将代码放在重叠.cpp 中调用 WSPRecv 的位置。 (来自 nonifslsp SDK 示例的文件名。)

Chrome uses overlapped I/O, so you need to put your code where WSPRecv is called in overlap.cpp in addition to spi.cpp. (Filenames from the nonifslsp SDK sample.)

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