WebSphere Application Server V7、V8和V8.5中的高级安全性加强 二

高级安全注意事项

简介

第 1 部分 解释了 IBM WebSphere Application Server V7.0 和更高版本在设计时如何考虑到默认安全性安全原则。目标是在最常见的配置和比较简单的环境中,让这个产品在默认情况下具有合理的安全水平(尽管这个目标还没有完美地实现)。前一篇文章最后介绍了 WebSphere Application Server 中已经采用的许多重要的基于基础架构的预防性安全措施。本文将介绍基于应用程序的其他预防性措施,然后讨论一些重要的注意事项。

尽管本文中的信息基于 IBM WebSphere Application Server V7、V8.0 和 V8.5,但是讨论的大多数问题同样适用于 V6.1。对于某个版本特有的问题,我们会专门指出。如果您使用以前的 WebSphere Application Server 版本,请参考 早期文章,因为具有显著的版本差异,这些差异进而会导致文章之间的差异。
配置文件备注

如果熟悉 V8.5 之前的 WebSphere Application Server,您就会知道必须要创建一个或多个配置文件。该配置文件可能是一个 Application Server(或 Base)配置文件、一个 Deployment Manager 配置文件等。在本文的剩余部分中,这些配置文件被称为 “完整” 配置文件。进行这样的区分是为了将这些配置文件与 V8.5 中新增的配置文件(Liberty 配置文件)进行对比。本文还提供了特定于新的 Liberty 配置文件的一些建议。

基于应用程序的预防性措施
配置措施

到目前为止,本文的重点是介绍创建安全的 IBM WebSphere Application Server 基础架构可以采取的基本步骤。这显然很重要,但只关注基础架构是不够的。既然基础架构已经加强了,那么现在有必要研究一下应用程序需要做哪些事情来确保安全性。当然,应用程序必须利用 WebSphere Application Server 提供的基础架构,但应用程序开发人员还必须执行(或避免)其他一些操作来尽可能地提高应用程序的安全性。

不要将 Web 服务器的文档根设置为 WAR

仔细检查每个 servlet 别名是否安全

不要通过类名提供 servlet

不要将敏感信息放在 WAR 根目录中

定义默认的错误处理程序

考虑禁用文件服务和目录浏览

启用会话安全性

注意定制的 JMX 网络访问

为了帮助您将这些措施与特定的攻击类别联系起来,每个措施都使用了 第 1 部分 介绍的标记来表示攻击的类别。

1. 不要将 Web 服务器的文档根设置为 WAR

WAR 文件包含应用程序代码和大量敏感信息。其中只有一部分信息可以向 Web 提供的内容。因此,将 Web 服务器文档根设置为 WAR 根目录是不合适的。如果这样做,Web 服务器会不加解释地提供 WAR 文件的所有内容。这会导致将代码、未经处理的 JSP 和其他内容提供给最终用户。(这项措施只在 Web 服务器和应用程序服务器放在一起时才有用,如果您遵循 第 1 部分 中给出的指南,通常不会出现此情况。)

2. 仔细检查每个 servlet 别名是否安全

WebSphere Application Server 通过 URL 保护 servlet。每个要保护的 URL 都必须在描述应用程序的 web.xml 文件中指定。如果 servlet 不止有一个别名(也就是说,多个 URL 访问相同的 servlet 类),或者有许多 servlet,那么很容易遗忘对某个别名的保护。需要谨慎处理这一点。由于 WebSphere Application Server 保护的是 URL,而不是底层类,所以即使只有一个 servlet URL 是不安全的,入侵者也能够绕过您的安全措施。为了减少这种威胁,应该尽可能地使用通配符来保护 servlet。如果那样做不合适,则应该在部署前再次仔细检查 web.xml 文件。

APAR PK83258(在 WebSphere Application Server Versions 7.0.0.7 和 6.1.0.27 中)会像对待 GET 请求那样检查 HEAD 请求的授权,从而在一定程度上堵住了这个漏洞。

在为 servlet 指定授权约束时,要确保不列出任何方法,或者非常仔细地列出 servlet 的所有方法(很可能在多个约束中),比如 GET、POST、PUT、HEAD 等。对于每个 Java EE 规范,如果授权约束显式地列出方法,没有提到的方法就没有授权约束!这对于 HEAD 等方法尤为危险,HEAD 在默认情况下通过调用 GET 获取所需的标头,这实际上会调用 GET 方法,但不会检查它的授权约束。清单 1 中的 web.xml 代码是不安全的,而清单 2 中的代码是安全的。

清单 1. web.xml – 不安全
<security-constraint>
        <web-resource-collection>
            <web-resource-name>myservlet</web-resource-name>
            <url-pattern>/myservlet</url-pattern>
            <http-method>GET</http-method>
        </web-resource-collection>
        <auth-constraint>
            <role-name>arole</role-name>
        </auth-constraint>
</security-constraint>

清单 2. web.xml – 安全

<security-constraint>
    <web-resource-collection>
        <web-resource-name>myservlet</web-resource-name>
        <url-pattern>/myservlet</url-pattern>
    </web-resource-collection>
    <auth-constraint>
        <role-name>arole</role-name>
    </auth-constraint>
</security-constraint>

下面的方法可从每个 web.xml 中获取,以确保权限是受限的:

定义一个初步安全约束,比如清单 3 中所示的约束。这表明所有 URL(除非被更具体的模式覆盖)仅限于 NoAccess 角色。NoAccess 角色名称可预先绑定到 None 特殊角色。

       清单 3

<security-constraint>
    <web-resource-collection>
        <web-resource-name>DefaultDeny</web-resource-name>
        <url-pattern>/*</url-pattern>
    </web-resource-collection>
    <auth-constraint>
        <role-name>NoAccess</role-name>
    </auth-constraint>
</security-constraint>

如果使用基于表单的登录,则应定义宽松的约束,允许 Web 容器向任何用户显示登录页面(和必要的图形等),甚至未经过身份验证的用户也能看到这些(清单 4)。AllUsers 角色名称可预先绑定到 Everyone 特殊角色。
清单 4

<security-constraint>
    <web-resource-collection>
        <web-resource-name>LoginForm</web-resource-name>
        <url-pattern>/Login.jsp</url-pattern>
        <url-pattern>/images/*.gif</url-pattern>
        <url-pattern>/css/*.css</url-pattern>
        <http-method>GET</http-method>
    </web-resource-collection>
    <auth-constraint>
        <role-name>AllUsers</role-name>
    </auth-constraint>
</security-constraint>

查看本栏目更多精彩内容:http://www.bianceng.cnhttp://www.bianceng.cn/Programming/extra/

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索文件
, 安全
, server
, application
, websphere
, 配置
, xml高级配置
java基础加强
websphere8.5下载、websphere8.5安装包、websphere8.5下载地址、websphere 8.5、websphere8.5安装部署,以便于您获取更多的相关知识。

时间: 2024-10-06 14:13:28

WebSphere Application Server V7、V8和V8.5中的高级安全性加强 二的相关文章

在WebSphere Application Server V7中为WS-Addressing提供JAX-WS 2.1支持

IBM WebSphere Application Server V7 包括了对 Java API for XML-Based Web Services (JAX-WS) 2.1 规范的支持.JAX-WS 2.1 是 Java Specification Request (JSR) 224 的维护版本,通过增加新功能对 JAX-WS 2.0 规范提供的功能进行了扩展.其中最重要的新功能就是 在应用程序编程接口(Application Programming Interface,API)中支持 W

WebSphere Application Server V7高级安全性加强,第2部分

高级安全性注意事项 简介 第 1 部分 解释了 IBM WebSphere Application Server V6.1 和更高版本在设计时如何考 虑到默认安全性安全原则.目标是在最常见的配置和比较简单的环境中,让这个产品在默认情 况下具有合理的安全水平,尽管这个目标还没有完美地实现.前一篇文章最后介绍了 WebSphere Application Server 中已经采用的许多重要的基于基础设施的预防性安全措施.本 文介绍基于应用程序的其他预防性措施,然后讨论一些重要的注意事项. 尽管本文中

WebSphere Application Server V7高级安全性加强,第1部分:(上)

安全性加强概述和方法 简介 IBM WebSphere Application Server 的安全性在每个版本中都有所改进.除了在新版本中 增加新功能之外,我们还不断增强产品的默认安全性.我们通过改进默认设置不断提高满足默 认安全性这一关键原则的程度.本文的前一个版本 主要关注 WebSphere Application Server V6 和那个版本所需的加强步骤.在后续 WebSphere Application Server 版本中,显著减少了 加强步骤的数量,更重要的是,保留的大多数步

调优WebSphere Application Server V7性能

简介 IBM WebSphere Application Server 是一种可靠的企业级应用服务器,它提供了一组核心组件.资源和服务,供开发人员在应用程序中使用.每个应用程序都具备特有的需求,并且经常采用截然不同的方式使用应用服务器的资源.为了提供高度灵活性并支持这种广泛的应用程序,WebSphere Application Server 提供了一组全面的参数来帮助您增强对应用程序的调优. 应用服务器已经为最常用的调优参数设置了默认值,以确保能为最广泛的应用程序提供开箱即用的性能改善.但是,由

IBM WebSphere Application Server V7.0 Feature Pack for Java Persistence

IBM WebSphere Application Server V7.0 Feature Pack for Java Persistence API 2.0 新特性介绍 对象 - 关系持久化是 Java EE 应用开发中的一个重要部分.Java Persistence API (JPA) 是对象 - 关系持久化的 Java EE 标准,从 Java EE 5 开始被引入.最新的 JPA 2.0(JSR-317) 规范是 Java EE 6 标准的一部分,它引入了新的对象 - 关系持久化 API

结合使用WebSphere Application Server V7和IPv6

引言 IBM WebSphere Application Server V7 是符合 J2EE 1.5规范的 Java Platform, Enterprise Edition (Java EE) 5 平台的 IBM 实现.它为企业级应用程序提供了运行时环境,包括 J2EE 应用程序.Portlet 应用程序和会话发起协议(Session Initiation Protocol,SIP)应用程序.WebSphere Application Server 能够承载高级拓扑中的企业应用程序,并突出体

WebSphere Application Server V7中的新特性

IBM WebSphere Application Server V7 中包括一些功能强大的新特性和显著的增强功能,以帮助您实现更高的工作效率.更强的安全性.更紧密的集成和简化的管理.了解这个新版本中的关键特性,这些特性使得该版本可以为您的面向服务的体系结构提供灵活而可靠的基础. 引言 IBM WebSphere Application Server 为面向服务的体系结构(Service Oriented Architecture,SOA)应用程序交付敏捷.可靠的基础,以使应用程序与业务和 IT

在WebSphere Application Server V7上通过JAX-WS实现消息级安全性

在WebSphere Application Server V7上通过JAX-WS 实现消息级安全性: 集成JEE授权  在第 1 部分中,您了解了如何在 WebSphere Application Server V7 上使用 JAX-WS 提供消息级安全性,包括如何使用策略集对消息进行加密和签名,以及如何使用 UsernameToken 概要文件进行身份验证.在第 2 部分中,您将了解如何使用 SOAP 头部中传递的 UsernameToken 作为 JEE principal 在服务提供者中

WebSphere Application Server V7.0新特性及各Java EE标准版本支持之对比

WebSphere Application Server V7.0新特性及各Java EE标准版本支持之对比 Application Server Network Deployment, Version 7.0 Operating Systems: AIX, HP-UX, i5/OS, Linux, Solaris, Windows, z/OS Specifications and API documentation 对比的WebSphere版本如下: Version 7.0 Version 6