使用 chrome 显示来自 LSP 的 http 阻止页面
我修改了微软的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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
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.)