使用Tomcat应用程序在HttpServer上保护内容 - 任何想法?

时间:2011-10-07 18:24:28

标签: apache tomcat apache2 httpserver

我们在Tomcat上有一个Web应用程序。该应用程序从专用的Apache HTTPServers访问内容(机密)。我们不希望未经授权的用户访问此内容。即只有通过WebApp(在Tomcat上)进行身份验证的用户才能访问HttpServer内容。 (我们使用HTTPS来保护网络,但如果有人获取内容的直接httpserver网址,他们可能会下载内容。)

我们正在考虑在Tomcat上使用相同的webapp托管内容。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

执行此操作的简单/懒惰方法是强制每次点击Apache服务器时的HTTP Referrer是Tomcat服务器的addrress。关于该页面的页面:http://www.htaccess-guide.com/deny-visitors-by-referrer/

然而,如果黑客知道这是你的保护方案,那么欺骗HTTP引用者是相当微不足道的。

两种更复杂但更安全的方法,按努力顺序:

  1. 在Tomcat服务器上编写一个JSP页面或其他内容,用于验证用户是否已登录,然后通过HTTP从Apache获取数据,然后将数据输出回最终用户。通过这样做,您实际上是在编写自己的反向代理。然后将Apache服务器锁定为仅将页面提供给Tomcat服务器的IP地址(以及您希望允许的任何其他授权/内部IP)。优点:仍然很快做。缺点:您正在使用tomcat资源来显示其他服务器上的每个页面,它可能会引入可伸缩性问题,特别是如果apache服务器提供大量字节(例如,如果apache提供500兆字节的文件,那将耗尽您的tomcat脚本的内存?这取决于您编写和测试JSP页面的程度!请注意!)。如果页面很小,那可能不是问题。

  2. 在Apache和Tomcat之间实现某种单点登录。这可能是基于cookie或更高级的东西(比如跟踪会话的后端身份验证服务器)。通过这种方式,Apache会知道请求https://页面的用户已经过适当的身份验证,否则将拒绝该请求。优点:完全可扩展。缺点:难以设置,许多解决方案都有商业/付费产品。