使用Java阻止网站

时间:2016-04-22 08:44:46

标签: java http httprequest

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

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

1 个答案:

答案 0 :(得分:1)

您要创建的是代理服务器。

您必须将浏览器配置为通过代理,然后您可以拒绝网站,重新路由它们等。

已经有很多代理(开源和商业)提供你想要的东西。

例如:Squid http://www.squid-cache.org/

请参阅维基百科代理说明:https://en.wikipedia.org/wiki/Proxy_server

许多防火墙产品都提供透明代理服务,将通过防火墙的所有http / https流量重定向到代理服务器。看来,你有一个直接的连接,但你的包真的被过滤了。 Aka透明代理。

如果您的作业不允许使用此上下文,则需要再次检查作业,如果您确实具有正确的过滤范围。

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

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

它根本无法正常工作。