2016-04-22 225 views
-1

我想阻止某些使用网络应用程序的网站。所以,当我输入一个网址假设“http://www.google.com”它应该首先检查谷歌是否被我的应用程序阻止或不。如果不打开网站,否则拒绝浏览器请求打开它。我无法找到一种方法来捕获来自浏览器的所有HTTP请求,以便我可以处理它。使用Java阻止网站

我知道代理是最合适的选择,但有没有其他解决方案。经过一番搜索后,我发现了一个库 - jpcap(一个网络数据包捕获库),我想知道这是否可以帮助我?

回答

1

你试图创建的是代理服务器。

您必须配置浏览器要经过代理服务器,那么你可以拒绝的网站,他们重新路由等

有许多代理已经在那里(开源和商业),提供你想要的。

例如:鱿鱼http://www.squid-cache.org/

代理这里的

见维基百科的描述:https://en.wikipedia.org/wiki/Proxy_server

许多防火墙产品提供了透明代理的服务,重定向所有HTTP/HTTPS流量通过防火墙进入代理服务器。看起来,你有直接的联系,但你的包真的被过滤。又名透明代理。

如果您的分配不允许此上下文,那么您需要再次检查分配,如果您确实获得了正确的过滤范围。

您无法从servlet或servlet过滤器接管浏览器的ip通信。使用(servlet)过滤器,您只能过滤指向您的应用程序的请求。上述一步,使用应用程序服务器阀(Tomcat使用此术语,其他人可能使用不同的阀),您只能过滤针对该服务器的请求。您的应用程序服务器上方(或下方)的一个步骤是物理服务器及其运行的网络。

如果您的客户端与您的服务器不共享相同的网络,则您甚至无法将透明代理应用到它。由于浏览器正在客户端计算机上运行,​​因此世界上大多数客户端不会与服务器共享相同的网络区域。

它只是不像你期望的那样工作。

+0

这个想法超出了我的想法。但事情是,这是一个学校作业,使用代理或配置浏览器是禁止的 –

+0

我明白你的意见,并且不能同意。但是我问这个问题的重点是要了解另一种方法。 –