我试图使用网络应用程序阻止某些网站。因此,当我输入网址时,假设“http://www.google.com”,首先应检查谷歌是否被我的应用程序阻止。如果没有打开网站,否则拒绝浏览器请求打开它。我无法找到从浏览器捕获所有HTTP请求的方法,以便我可以处理它。
我知道代理是最合适的选择,但有没有替代解决方案。经过一番搜索,我找到了一个库 - jpcap(一个网络数据包捕获库),我想知道这是否对我有帮助?
答案 0 :(得分:1)
您要创建的是代理服务器。
您必须将浏览器配置为通过代理,然后您可以拒绝网站,重新路由它们等。
已经有很多代理(开源和商业)提供你想要的东西。
例如:Squid http://www.squid-cache.org/
请参阅维基百科代理说明:https://en.wikipedia.org/wiki/Proxy_server
许多防火墙产品都提供透明代理服务,将通过防火墙的所有http / https流量重定向到代理服务器。看来,你有一个直接的连接,但你的包真的被过滤了。 Aka透明代理。
如果您的作业不允许使用此上下文,则需要再次检查作业,如果您确实具有正确的过滤范围。
您无法从servlet或servlet过滤器接管浏览器的ip通信。使用(servlet)过滤器,您只能过滤指向应用程序的请求。上面的一步,使用应用程序服务器阀门(Tomcat使用此术语,其他人可能使用不同的术语),您只能过滤针对该服务器的请求。应用程序服务器上方(或下方)的一步是物理服务器及其运行的网络。
如果您的客户端与服务器不共享同一网络,则甚至无法对其应用透明代理。由于浏览器在客户端计算机上运行,因此世界上大多数客户端不与服务器共享相同的网络区域。
它根本无法正常工作。