`

开发安全的web应用程序

阅读更多

1.理解验证机制: servlet规范中定义了四种验证机制

1.1 http Basic authentication

http 基本验证时在http1.0规范中定义的,基于用户名和密码的验证机制,当web客户端请求手保护资源时,web服务器会请求客户端验证用户,此时会弹出一个对话框,让用户输入用户名和密码

验证步骤:

i:浏览器请求受保护的资源

ii:服务器发现客户端请求的资源时受保护的,于是向客户端发送401(未授权的)相应消息,在响应消息中,包含了www - authenticate

的响应报头,用于告诉浏览器访问这个资源需要基本验证。

服务器发送的相应消息形式如下:

http/1.1 401 unauthorized

....

www-Authenticate: Basic realm="Basic Auth Test"

在www-Authenticate 响应报头中,包含了一个Realm(领域)字符串,Realm值定义了保护区域,通过使用Realm,可以将服务器上的受保护的资源分割为不同的区域,这些区域有各自的验证方案和(或)授权数据库。realm是一个字符串,有服务前分配。当浏览器向服务器传输用户名和密码后,服务器在指定的realm(领域)内验证用户

iii:当浏览器接受到一个401响应后,浏览器弹出一个对话框,让用户输入用户名和密码。

iiii:用户输入了用户名和密码后,浏览器发送Authorization请求报头,将用户名和密码一起发送出去。

用户名和密码的发送形式为“用户名:密码” ,将这个字符串以base64编码作为Authoriation报头的值

GET URL HTTP/1.1

..

Authorization:Basic

V:当服务器接受到包含了Authorization报头的请求,于是就验证用户和密码。如果用户名和密码正确就发送用户请求资源,否则,发送403(被禁止)响应消息

vI:浏览器显示请求资源

注意:此种验证用户名和密码在传输过程中,用户名和密码并没有加密(base46编码不是一种加密的方法)

2.http Digest Authentication

与http Basic Authentication 基本验证类似Http摘要也是基于用户名和密码来验证的,不同的是,使用摘要验证,用户密码是以加密形式(MD5)

3。https、

4 。form based Authentication

基于表单的验证类似于基本验证,不同之处是,基于表单的验证使用定制的html表单让用户输入用户名和密码,而不是使用浏览器的弹出对话框。

当浏览器请求一个资源的时候,服务器将保存原始的请求参数,然后发送验证表单给浏览器,用户在表单中输入用户名和密码,然后提交给服务器,

服务前验证通过后重定向客户端到请求资源。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics