0

Microsoft の LSP (Winsosk Layered Service Provider) の例を変更して、デスクトップ用の Web フィルター アプリケーションを作成しました。http ヘッダーのホストをファイル内の禁止された Web サイトのリストと比較することで、Web サイトへのアクセスをブロックできます。Web がブロックされている場合、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 ページのコンテンツです。

ありがとうございました。

4

1 に答える 1

0

Chrome はオーバーラップ I/O を使用するため、spi.cpp に加えて、overlap.cpp で WSPRecv が呼び出される場所にコードを配置する必要があります。(nonifslsp SDK サンプルのファイル名。)

于 2011-07-18T02:40:57.790 に答える