分享
 
 
 

Base-Jsp-9-安全验证

王朝java/jsp·作者佚名  2006-02-01
窄屏简体版  字體: |||超大  

v 安全验证

Ø 身份验证(authentication):建立一种机制,以确定一个用户确实是他所声称的那个人。

Ø 访问控制,或授权(authorization):与身份验证紧密相关的安全机制,保证用户只能。

v 身份验证

Ø 由容器提供的身份验证

Servlet规范(2.2开始)定义了3种身份验证机制,大部分web客户机和服务器都支持

这3种机制。

i) HTTP基本身份验证

当浏览器请求访问受保护的资源时,服务器将发回索要用户身份证明(用户名和密码)的应答。浏览器提示用户输入这些信息,并再次发送相同的请求,并在请求首部加入了用户的身份证明,这样服务器就可以对这个用户进行身份验证了。

这种验证,用户名和密码并没有被加密,而只是用人们熟悉的Base64编码处理。

ii) HTTP摘要身份验证

它同HTTP基本身份验证的处理方式相同,只是在服务器发送索要验证信息的应答

中还会发送一个称为nonce的字符串(该字符串由服务器唯一生成,包括一个时间

戳、被请求资源的信息和一个服务器标识符),浏览器生成一个包含用户名、密码、

收到的nonce值和被MD5加密的URI的请求,浏览器生成的生成的这个请求信息

被称作“摘要信息”。HTTP摘要身份验证和HTTP基本身份验证相比提高了安全

性,但它还没有得到当前的web客户端和服务器的广泛的支持。

iii) HTTPS客户身份验证

® HTTPS客户身份验证是当前所能支持的最可靠的身份验证机制,这种机制要求用户持有一个PKC(Public Key Certificate,公共密钥证书),当客户端和服务器之间建立起了连接时,这个证书通过一个非常安全的质询——应答的过程发送给服务器,服务器将使用这个证书来唯一的识别该用户。

ª 以上3种机制都是internet标准定义的。这3种机制通常有web服务器自己来实现的,而不是由servlet容器实现的。Servlet规范只定义了一个应用程序如何访问信息结果的规则,而这些结果是进行了用户身份验证的。

iv) 表单的身份验证和

这种身份验证是servlet规范所独有的,并由servlet容器自己实现的

出于同样的原因,表单的身份验证和HTTP基本身份验证一样都不可靠,用户的身

份信息将以纯文本的形式在网络上传输。所以为了保护敏感的资源,必须用SSL(SecureSocketsLayer,安全套结字)这样的加密机制来完成安全管理。

这种机制允许你控制登陆页面的外观。登陆页面是一个带有表单的普通HTML文件,其中包括两个必须的字段,j_username和j_password,而且action属性被设为字符串j_security_check。

<form method=”POST” action=”j_security_check”>

<input type=”text” name=”j_username”>

<input type=”password” name=”j_password”>

</form>

这种机制和基本身份验证一样,当浏览器请求访问受保护的资源时,将显示出登陆表单,action属性的值j_security_check是一个特殊的URL,容器将识别这个URI。

v 对web资源进行访问控制

ª 容器控制的身份验证

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>

<!--login-config定义了要使用的验证类型-->

<login-config>

<!--auth-method接受的值包括:BASIC、DIGEST、FORM、CLIENT—CERT-->

<auth-method>BASIC</auth-method>

<!--realm-name:领域名,可以为任何文本,该信息作为认证对话框的一部分显示-->

<realm-name>Security Example</real-name>

</login-config>

<!--security-role声明在容器的安全域内必须被映射到用户和用户组的所有角色的名称

-->

<security-role>

<role-name>admin</role-name>

</security-role>

<security-role>

<role-name>user</role-name>

</security-role>

如果使用表单的身份验证,那么必须在<login-config>元素中指定你的登陆表单和错误页面的名称。

<login-config>

<auth-method>FORM</auth-method>

<form-login-config>

<form-login-page>/login.jsp</form-login-page>

<form-error-page>/loginError.jsp</form-error-page>

</form-login-config>

</login-config>

通过使用配制描述符中的安全性需求的声明,web服务器和servlet容器就可以帮助你处理所有的身份验证和访问控制了。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有