2009年3月28日星期六

WLS_066:设置transport-guarantee=CONFIDENTIAL保护敏感资源

开发运行环境:WebLogic 12.1.1 开发版

本文最后一次修改日期:2013-06-08

为了保护Web应用中的敏感数据,防止资源的非法访问和保证传输的安全性,Java Servlet 2.2规范定义了安全约束(Security-Constraint)元件,它用于指定一个或多个Web资源集的安全约束条件;用户数据约束(User-Data-Constraint)元件是安全约束元件的子类,它用于指定在客户端和容器之间传输的数据是如何被保护的。
用户数据约束元件还包括了传输保证(Transport-Guarantee)元件,它规定了客户机和服务器之间的通信必须是以下三种模式之一:NONE、INTEGRAL、CONFIDENTIAL。NONE表示被指定的Web资源不需要任何传输保证;Integral表示客户机与服务器之间传送的数据在传送过程中不会被篡改;Confidential表示数据在传送过程中被加密。大多数情况下,INTEGRAL或CONFIDENTIAL是使用SSL实现。

本文就是通过实验验证当设置transport-guarantee=CONFIDENTIAL后,原来被保护的资源,将自动从HTTP协议,转到HTTPS协议。
当然,前提是你已经配置了SSL,关于如何配置SSL请参考《WebLogic Server基本管理之十:配置单向SSL认证》和《WebLogic Server高级管理之九:配置双向SSL认证》。

1. 配置SSL

2. 在web.xml中设置transport-guarantee=CONFIDENTIAL
这里使用《JMeter_003:压力测试指南之三:测试Form安全认证的Web应用》中用到的HelloFormAuth.war应用。

3. 重新发布应用
访问:http://localhost:7001/HelloFormAuth/index.jsp,会发现首先提示“网站证书有问题”,确定风险并继续后,请求将自动Redirect到https://localhost:7002/HelloFormAuth/index.jsp。
这说明设置transport-guarantee=CONFIDENTIAL后,原来被保护的资源,将自动从HTTP协议转到HTTPS协议。

参考文献:
1. http://wenku.baidu.com/view/1c48b00a76c66137ee0619c5.html
2. http://blog.sina.com.cn/s/blog_68ef797801016f9z.html HTTPS
3. http://blog.mc-thias.org/?title=tomcat_and_ssl_redirection&more=1&c=1&tb=1&pb=1
4. http://stackoverflow.com/questions/7790141/security-constraint-configuration-inside-web-xml-for-tomcat

没有评论: