0

我正在编写一个使用 REGEX 侦听特定数据包端口的应用程序。我可以看到原始的 TCP 流,但我想知道是否可以在没有任何数据包伪造库的情况下拦截和停止该流。

示例:用户在包含单词 P*RN 或“J*st** Bi*ber”的页面上导航,并且自动失去了此特定连接。

如果我做不到,也许我会即时替换一些 HTMLElements。

4

1 回答 1

1

您可以实施代理服务器,以便从您的用户到 Internet(和返回)的所有流量都将通过您的代理。您可以使用 .NET 网络 API(无数据包伪造)实现代理。当您想断开连接时,您可以关闭 TCP 流,或发回错误响应。

这个解决方案也有一些问题:

  • 您必须为要过滤的每个协议(SMTP、IMAP、POP3)实现特定的代理
  • 您需要强制您的用户在连接到 Internet 时使用您的代理服务器(这可以在网络级别进行配置)
  • 它不适用于 SSL (HTTPS),因为流量是加密的

编辑 我认为没有办法使用 .NET API 拦截 TCP 流。但是,您可以转发TCP 流(接受客户端连接,然后转发客户端和服务器之间的所有通信)。由于您接受了客户端 TCP 连接,因此您也可以终止它。

于 2012-04-21T18:55:28.570 回答