0

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

我们正在考虑在 Tomcat 上的同一个 webapp 中托管内容。有任何想法吗?

4

1 回答 1

0

执行此操作的简单/懒惰的方法是强制每次访问 Apache 服务器时的 HTTP 引荐来源网址是您的 Tomcat 服务器的地址。一个页面:http: //www.htaccess-guide.com/deny-visitors-by-referrer/

但是,如果黑客发现这是您的保护方案,那么他们就可以轻易地欺骗 HTTP 引荐来源网址。

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

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

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

于 2011-10-07T18:32:51.193 回答