我需要有关如何在我当前的 Java 网站上获得最大安全性的建议。
我已经将这两个应用程序部署在 Centos6 服务器上端口 8080 上的一个 tomcat-7 实例下。
.war 文件
- website.war(上下文名称为 ROOT)
- processor.war(上下文名称是处理器)
批处理罐
- 批处理.jar
安全要求
- website.war 可公开访问。无需安保
- processor.war 从 website.war 获取 HTTP 请求并返回结果以供网站显示给用户。
- batch.jar 在服务器的后台运行,所以我猜除了安全服务器之外不需要任何安全性。
目前我已添加到 processor.war 的 web.xml 以保护以下内容
- 只有在 tomcat-users.xml 文件中设置了 user 和 pass 的请求才能访问 /process url。
- 只有在 tomcat-users.xml 文件中设置了 user 和 pass 并设置了 'admin' 角色的请求才能访问 /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 页面。
有人可以告诉我是否需要更多的安全性,如果是,我能做些什么来保护它?