购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

2.8 JSP的安全类

JSP虽然不是本书的重点,但是它的相关安全类也是可圈可点的。例如,Authentication利用通信实体验证对方的身份。资源访问控制(Access Control for Resources)技术可以对指定的用户组进行操作,限制用户的某些权限。Data Integrity可以保证数据在传递过程中不被第三方修改。数据授权技术(Confidentiality or Data Privacy)保证数据只被那些授权使用的用户使用。

具体这几种方式的详细介绍如下:

1.安全策略

Declarative Security的内容包括角色控制,完成外部表单所要求的输入验证。在网站运行时,servlet框架使用这些策略强制验证。

2.代码级安全策略

当Declarative Security不能够完全过滤用户输入和验证角色时,就可以使用代码级安全策略。Programmatic Security包括HttpServletRequest接口的下列方法:

getRemoteUser方法返回经过客户端验证的用户名。IsUserInRole向容器container的安全机制检索特定的用户是否在一个给定的安全角色中。GetUserPrinciple方法返回一个java.security.Pricipal对象。这些APIs根据远程用户的逻辑角色让servlet去完成一些逻辑判断。它也可以让servlet去决定当前用户的权限。如果getRemoteUser返回null值(这意味着没有用户被验证),那么isUserInRole就总会返回false,getUserPrinciple总会返回null。

3.角色

角色(Roles)是由开发和维护人员所定义的一个抽象的逻辑用户组。当一个网站系统被发布,Deployer就把这些角色映射到安全认证,例如组或规则。

当Deployer把一个安全角色映射为操作环境下的一个用户组,调用安全策略所属的用户组就从安全属性中获得。如果安全策略的用户组与在操作环境下的用户组相匹配,那么安全策略就是一个安全角色。当Deployer把一个安全角色映射为一个在安全域中的安全策略名时,调用安全策略就把角色从安全属性中提取出来。如果两者相同的话,调用的安全策略就是安全的。

4.Authentication

JSP的WEB系统能够利用下列的认证机制验证一个用户。

(1)HTTP Digest Authentication。

(2)HTTPS Client Authentication。

(3)HTTP Basic Authentication。

(4)HTTP Based Authentication。

5.HTTP Basic Authentication

HTTP Basic Authentication是一个定义在HTTP/1.1规范中的验证机制。这种机制是以用户名和密码为基础的。一个JSP系统要求一个Web Client去验证一个用户。作为请求的一部分,Web Server 传递realm的字符串,用户的验证信息就包含在字符串中。Web Client得到这些用户名和密码,然后把它传递给Web Server。然后Web server验证这些用户。

由于密码是使用64位的弱编码来传递的,所以Basic Authentication不是一种安全的验证协议。假如增加(HTTPS)或在网络层使用安全措施就能弥补这些不足。

6.HTTP Digest Authentication

与HTTP Digest Authentication一样,HTTP Digest Authentication根据用户名和密码验证一个用户。密码的传输是通过一种加密的形式进行的,这就比Basic Authentication所使用的64位编码形式传递要安全得多。但这种方法还是没有HTTPS安全。

7.HTTPS Client Authentication

使用HTTPS(HTTP over SSL)的用户验证是一种严格验证机制。这种机制要求用户客户端处理公共密钥(Public Key Certification,PKC)。 MMqvUks7Q3SzrycLIdfwhyVaWrd3lDR1nchiwIkBdiEoFA/rli38Pg+47lBd6kvA

点击中间区域
呼出菜单
上一章
目录
下一章
×