外部可访问的 Tomcat Manager 中的安全风险

标签 security tomcat https tomcat8

我计划通过这样的子域访问 Tomcat (8.5) 管理器:https://tomcat.mydomain.com .

如您所见,连接是通过 HTTPS 进行的,但这仍然会带来安全风险并被视为“不良做法”吗?

有人认为我确实注意到了,通过查看 mydomain.com 的证书,您可以看到 https://tomcat.mydomain.com确实存在。这意味着默默无闻的安全性不高。

当然,正确设置 tomcat 帐户并受密码保护很重要,我有密码。

最佳答案

让端点可公开访问本身并不构成安全风险。不过,在决定是否公开管理界面时,您可能还需要考虑其他因素:

  1. 有多少人拥有该服务的凭据?
  2. 是否可以相信所有这些人都有好的密码?
  3. 是否可以相信所有这些人不会在多个网站上重复使用密码?
  4. 您是否启用了锁定功能(如果在 Manager 应用程序中使用 Tomcat 的身份验证,则默认情况下启用)?
  5. 能否克服停工? (考虑锁定实现)
  6. 管理员是否真的需要管理器的公共(public)访问权限?
  7. 您是否可以在公众和管理界面之间添加额外的安全层?

一般来说,我通常选择不向公众公开管理界面。我几乎总是要求管理用户在访问任何管理界面之前通过一些其他的门,例如 ssh 隧道(只有公钥访问),然后他们大多数还通过该界面进行第二次身份验证(即你不会因为您建立了隧道就自动信任)。

如果我要向公众公开一个管理界面,我想除了基于密码的身份验证之外,我还需要一些东西。应该涉及一些其他因素,无论是像 TOTP 或类似的常见 2FA 解决方案,还是 TLS 客户端证书(“相互身份验证”)。

有一个presentation on the Tomcat web site关于升级您的凭证安全性。那里有关于如何在 Tomcat 现有身份验证系统中设置 TOTP 的示例代码和配置。您可能想阅读该演示文稿并考虑是否要为您的管理界面添加这样的保护。

关于外部可访问的 Tomcat Manager 中的安全风险,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50775954/

相关文章:

java - 在 tomcat servlet 中检测客户端断开连接?

java - 如何在一个Java应用中实现classloader输出不同的日志?

iphone - 旧 iphone 3g 上的 HTTPS 请求

https - 客户端(Java、C++ 等)是否需要有效的数字证书才能成功建立 https 连接?

java - 从 NVD 数据源中提取数据和 cpe_match 含义

ios - 使用 PFLogInViewController 创建 PFUser 后,Parse.com iOS 用户电子邮件打开可读

security - 为什么 FormsAuthentication 的 requireSSL 属性默认为 false!

maven - Log4j 冲突 - 提供的容器和项目级别

php - 是否可以使用 jQuery 加密 AJAX 调用以进行身份​​验证?

mysql - 拆分mysql数据库以确保安全