我们在Tomcat上有一个Web应用程序。该应用程序从专用的Apache HTTPServer访问内容(机密)。我们不希望未经授权的用户访问此内容。即只有通过WebApp(在Tomcat上)通过身份验证的用户才能访问HttpServer内容。(我们使用HTTPS来保护网络的安全,但是如果有人获得直接的httpserver URL内容,他们可能会下载内容)。
我们正在考虑将内容托管在Tomcat的同一个webapp中。有任何想法吗?
一种简单/轻松的方法是强制每次对Apache服务器的命中时都使用HTTP Referrer作为Tomcat服务器的地址。关于该页面的页面:http : //www.htaccess-guide.com/deny-visitors-by- referrer/
但是,如果黑客发现HTTP引荐来源网址是您的保护方案,那么这很容易欺骗。
按照努力的顺序,还有两种更复杂但安全的方法:
在Tomcat服务器上编写一个JSP页面或其他内容,以验证用户已登录,然后通过HTTP从Apache提取数据,然后将数据输出回最终用户。通过这样做,您实际上是在编写自己的反向代理。然后,将Apache服务器锁定为仅向Tomcat服务器的IP地址(以及您希望允许的任何其他授权/内部IP)提供页面。优点:仍然非常快。缺点:您正在使用tomcat资源来显示另一台服务器上的每个页面,这可能会带来可伸缩性问题,尤其是如果apache服务器提供大量字节(例如,如果apache提供了500兆文件,则会耗尽您的tomcat脚本的内存?这取决于您编码和测试JSP页面的质量!如果页面很小,则可能不是问题。
在Apache和Tomcat之间实现某种单一登录。这可能是基于cookie的,或者仍然是更高级的(例如后端身份验证服务器跟踪会话)。这样,Apache就会知道请求https://页面的用户已正确身份验证,否则将拒绝该请求。优点:完全可扩展。缺点:难以设置,许多解决方案都是商业/付费产品。