【发布时间】:2016-10-13 23:18:18
【问题描述】:
这就是问题所在。
我有一个 https 请求。该请求正在作为 SSL / TLS 请求发送(不是来自具有代理设置的浏览器的 CONNECT ....)。
我需要在 c# 中编写一个代理来阻止特定的 https://foo.com/foo.htm 请求,但允许 https://foo.com/anything_else.htm 通过。
我可以很好地使用新证书等创建 MITM 攻击。
但我现在想知道是否有一种简单的方法可以做到这一点,我在不使用 MITM 攻击的情况下丢失了,因为我不需要解密数据。我只需要知道 URI/文件。
我可以轻松地传输流,但我想知道在读取 URI 和文件后是否有一种简单的方法来传输流。
我可以编写一些花哨的代码来分解 tcp 请求,这就是我可能要做的。
在我走这条路之前,任何人都有任何想法。请记住,没有 CONNECT 请求。只需直接 SSL / TLS。
这样做的主要原因是它只是让事情变得更简单,而不是创建自签名证书等。
也许它甚至可以从服务器端以某种方式使用真实证书,因为我不需要解密任何无头数据。
我发现 c# 的网络方面没有很好的文档记录,而且到处都是。
仅供参考,我可以使用以下方法从 TcpClient 获取 URI:
IPEndPoint ipEndPoint = (IPEndPoint)clientTcpClient.Client.RemoteEndPoint;
IPAddress ipAddress = ipEndPoint.Address;
// Get the hostname.
IPHostEntry ipHostEntry = Dns.GetHostEntry(ipAddress);
String hostName = ipHostEntry.HostName;
// Get the port.
Int32 port = ipEndPoint.Port;
但不是请求的页面。
【问题讨论】: