预览加载中,请您耐心等待几秒...
1/7
2/7
3/7
4/7
5/7
6/7
7/7

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

JSP安全验证 2008年07月05日星期六23:07 JSP安全验证包括两方面内容:一、身份验证(authentication):建立一种机制,以确定一个用户确实是他所声称的那个人。二、访问控制,或授权(authorization):与身份验证紧密相关的安全机制,保证用户只能访问特定的资源。身份验证1由容器提供的身份验证Servlet规范(2.2开始)定义了3种身份验证机制,大部分Web客户机和服务器都支持这3种机制。1.1HTTP基本身份验证当浏览器请求访问受保护的资源时,服务器将发回索要用户身份证明(用户名和密码)的应答。浏览器提示用户输入这些信息,并再次发送相同的请求,并在请求首部加入了用户的身份证明,这样服务器就可以对这个用户进行身份验证了。这种验证,用户名和密码并没有被加密,而只是用人们熟悉的Base64(52个字母、10个数字、+、/)编码处理。1.2HTTP摘要身份验证它同HTTP基本身份验证的处理方式相同,只是在服务器发送索要验证信息的应答中还会发送一个称为nonce的字符串(该字符串由服务器唯一生成,包括一个时间戳、被请求资源的信息和一个服务器标识符),浏览器生成一个包含用户名、密码、收到的nonce值和被MD5加密的URI的请求,浏览器生成的生成的这个请求信息被称作“摘要信息”。HTTP摘要身份验证和HTTP基本身份验证相比提高了安全性,但它还没有得到当前的web客户端和服务器的广泛的支持。1.3HTTPS客户身份验证®HTTPS客户身份验证是当前所能支持的最可靠的身份验证机制,这种机制要求用户持有一个PKC(PublicKeyCertificate,公共密钥证书),当客户端和服务器之间建立起了连接时,这个证书通过一个非常安全的质询——应答的过程发送给服务器,服务器将使用这个证书来唯一的识别该用户。ª以上3种机制都是internet标准定义的。这3种机制通常有web服务器自己来实现的,而不是由servlet容器实现的。Servlet规范只定义了一个应用程序如何访问信息结果的规则,而这些结果是进行了用户身份验证的。1.4★表单的身份验证★这种身份验证是servlet规范所独有的,并由servlet容器自己实现。出于同样的原因,表单的身份验证和HTTP基本身份验证一样都不可靠,用户的身份信息将以纯文本的形式在网络上传输。所以为了保护敏感的资源,必须用SSL(SecureSocketsLayer,安全套结字)这样的加密机制来完成安全管理。这种机制允许你控制登陆页面的外观。登陆页面是一个带有表单的普通HTML文件,其中包括两个必须的字段,j_username和j_password,而且action属性被设为字符串j_security_check。<formmethod=”POST”action=”j_security_check”><inputtype=”text”name=”j_username”><inputtype=”password”name=”j_password”></form>这种机制和基本身份验证一样,当浏览器请求访问受保护的资源时,将显示出登陆表单,action属性的值j_security_check是一个特殊的URL,容器将识别这个URI。2.对web资源进行访问控制2.1容器控制的身份验证Servlet规范定义的安全机制阐述了为一个web应用程序指定访问控制约束,但访问权限是赋予角色(role)的,而不是直接赋予某个用户或用户组的。在特定服务器上,真实的用户名和用户组名会映射到应用程序中的角色名上。对web应用程序的资源的访问控制的类型是在web应用程序配置描述符(WEB-INF/web.xml文件)中定义的。配置描述符的格式是由servlet规范定义的的,所以所有兼容servlet的容器都支持这种类型的安区配置。例:<security-constraint><!—web-resource-collection定义了要保护的资源--><web-resource-collection><web-resource-name>admin<web-resource-name><web-resource-name>user<web-resource-name><url-pattern>/WEB-INF/pages/*</url-pattern></web-resource-collection><!--auth-constraint定义了谁能访问受保护的资源,这这里定义只有admin角色才能访问受保护的资源--><auth-constraint><role-name>admin</role-name></auth-constraint></security-constraint><!--l