我有一个防火墙实现,我想记录机器上访问的所有网站。因此,当用户在浏览器(任何浏览器)中输入地址或单击链接以能够记录访问过的地址时。问题是我只想记录访问过的地址,而不是页面请求的其他资源(广告、iframe、Google 统计信息等)。有没有办法通过查看 HTTP 或 TCP 标头来做到这一点?或者任何其他方法。
谢谢你。
我有一个防火墙实现,我想记录机器上访问的所有网站。因此,当用户在浏览器(任何浏览器)中输入地址或单击链接以能够记录访问过的地址时。问题是我只想记录访问过的地址,而不是页面请求的其他资源(广告、iframe、Google 统计信息等)。有没有办法通过查看 HTTP 或 TCP 标头来做到这一点?或者任何其他方法。
谢谢你。
我发现一种更简单的方法是使用 Microsoft® Active Accessibility® 并从浏览器的地址栏中读取 URL。但这在其他方面很棘手:您必须考虑多个浏览器的 UI 布局(至少是最流行的)以及同一浏览器版本之间的差异。某些浏览器或浏览器版本对 MSAA 的支持有限,并且不会公开所有控件(例如 Opera 10.50-10.51,尽管这已在 10.52 中修复)。
一种可能的方法是使用“透明代理”:让防火墙自动将所有出站 HTTP 连接传输到代理。您将在代理的日志中找到所需的信息。