【发布时间】:2013-07-23 07:11:57
【问题描述】:
我需要有关如何在当前 Java 网站上获得最大安全性的建议。
我已将这两个应用程序部署在 Centos6 服务器上端口 8080 上的一个 tomcat-7 实例下。
.war 文件
- website.war(上下文名称为 ROOT)
- processor.war(上下文名称是处理器)
批处理罐
- batch.jar
安全要求
- website.war 可公开访问。无需安保
- processor.war 从 website.war 获取 HTTP 请求并返回结果供网站显示给用户。
- batch.jar 在服务器的后台运行,所以我想除了安全服务器之外不需要任何安全措施。
目前我已添加到 processor.war 的 web.xml 以保护以下内容
- 只有在 tomcat-users.xml 文件中设置了 user 和 pass 并设置了 'user' 角色的请求才能访问 /process url。
- 只有在 tomcat-users.xml 文件中设置了“admin”角色的 user 和 pass 的请求才能访问 /admin url。
这是我对 processor.war 的 web.xml 文件的配置。
<security-constraint>
<web-resource-collection>
<web-resource-name>Admin</web-resource-name>
<url-pattern>/*</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>admin</role-name>
</auth-constraint>
</security-constraint>
<security-constraint>
<web-resource-collection>
<web-resource-name>Public</web-resource-name>
<url-pattern>/processor/process*</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>user</role-name>
<role-name>admin</role-name>
</auth-constraint>
</security-constraint>
这足够安全吗?我读过攻击者可以欺骗请求并读取 HTTP 请求中的密码。我只想真正保护processor.war,以便
- 只有 website.war (localhost:8080) 可以将请求发送到 processor.war localhost:8080/processor/process
- 并且只有管理员用户可以访问 localhost:8080/processor/admin 页面。
有人可以告诉我是否需要更多的安全性,如果是,我能做些什么来保护它?
【问题讨论】:
-
如果您还不熟悉该主题,可能会对这篇文章感兴趣:Tomcat – Digest Authentication
-
我不知道这个。非常感谢保罗。我将实现 DIGEST auth-method 而不是 BASIC。这应该是吧?我需要更多的安全保障吗?
-
这更像是一个系统管理员任务:带有反向代理(如 Apache)的“前端”tomcat,它打开端口 80(或更好的 443)和代理到您的网站战争,如果需要,管理页面你的processor.war。将端口 8080 阻止给除本地呼叫之外的所有人。一旦你有了基本的安全,你就不能调整授权