apache - 使用 Tomcat 应用程序保护 HttpServer 上的内容——有什么想法吗?

标签 apache tomcat apache2 httpserver

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

我们正在考虑在 Tomcat 上的同一个 Web 应用程序中托管内容。有什么想法吗?

最佳答案

执行此操作的简单/惰性方法是强制每次访问 Apache 服务器时的 HTTP Referrer 是您的 Tomcat 服务器的地址。有关的页面: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 的,也可能是更高级的东西(比如使用跟踪 session 的后端身份验证服务器)。通过这种方式,Apache 将知道请求 https://页面的用户已通过适当的身份验证,否则将拒绝该请求。优点:完全可扩展。缺点:更难设置,许多解决方案都是商业/付费产品。

关于apache - 使用 Tomcat 应用程序保护 HttpServer 上的内容——有什么想法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7691332/

相关文章:

apache - 根请求在 Apache 中解析为错误的 VirtualHost

ssl - HTTPS 不适用于 SSL 证书

python - python 中如何知道线程是否为虚拟线程?

apache - Apache Flume HDFS 接收器文件写入的保证是什么?

java - : binary,解释、执行、编译这几个概念之间有什么关系?

jsp - HTTP 状态 500 - 处理 JSP 页面时发生异常

tomcat - 安装哪种Tomcat 6

firefox - Apache 2 身份验证错误

上传大于 2 MB 的文件时 Apache 文件上传异常

java - 在 Tomcat 中定义新类