常见的认证

常见的认证,第1张

详解BASIC认证

基本身份验证是HTTP中相对简单的身份验证方法。因为简单,所以不是很安全,但还是很常见。本文详细阐述了基本验证的整个过程和基本原理。


基本验证步骤:


在整个HTTP协议通信过程中,HTTP协议定义了基本验证的全过程,以允许HTTPWEB服务器向WEB浏览器发出客户端请求。当客户端向HTTPserviceprojectserver请求数据信息时,如果客户端未通过验证,HTTPwebserver将按照基本验证的全过程对客户端的用户名和登录密码进行认证,以决定客户端是否合理合法。



客户端收到HTTPweb服务器的认证规则后,会提醒客户端输入用户名和登录密码,然后用BASE64数据加密用户名和登录密码。加密数据的机密性将被添加到所请求信息的内容中。比如,当用户名为admin,登录密码为123456时,客户端会将用户名和登录密码用“:”拼起来,为了保密,用BASE64数据加密拼出来的字符串数组,每次都请求数据。


HTTP服务器每次收到请求包后,根据协议获取客户端的附加客户信息(用BASE64数据加密的用户名和登录密码),取消请求包,认证用户名和登录密码,如果用户名和登录密码合适,根据客户端的请求返回客户端的必要数据信息;否则,返回错误代码或要求客户端再次显示用户名和登录密码。



详细讲解基本验证的全过程:







1.客户端请求web服务器浏览维护的数据信息。所请求的内容可以是网页或其他MIME类型。此时,假设客户端未通过身份验证,客户端向web服务器发出以下请求:

get/index.htmlHTTP/1.0
Host:www.favccxx.com


2.网络服务器向客户端推送认证请求代码401,缺失对象的数据信息主要如下:

HTTP/1.0401未授权的
服务器:SokEvo/1.0
WWW-Authenticate:Basicrealm="favcxx.com"
内容类型:text/html
内容长度:xxx


3.当满足http1.0或1.1标准的客户端(如IE、FIREFOX)收到返回值401时,会d出登录对话框,要求客户端键入用户名和登录密码。


4.客户输入用户名和登录密码后,用户名和登录密码用BASE64加密算法数据加密,保密性放入之前的请求信息内容,那么客户端推送的第一条请求信息内容就变成了以下内容:

get/index.htmlHTTP/1.0
Host:www.favccxx.com
授权:基本xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

注:xxxx...表示数据加密后的用户名和登录密码,authorization=base64.encode("admin:password");


5.网络服务器收到请求信息的内容后,记下并破译授权字段名后的客户信息,用客户数据库查询对破译的用户名和登录密码进行认证。如果用户名和登录密码正确,网络服务器将根据请求向客户端发送所请求的资源。



验证BASIC的优点和缺点


优势:

  • 应用程序很简单。

  • 开发、设计和调整简单

    没有复杂的网页跳转逻辑和整个交互过程。

    更有利于对发起者的 *** 控

    缺陷:

  • 安全系数低,每次都要传输用户名和登录密码。用户名和登录密码极有可能被监控和窃取。

  • 另外,用户名和登录密码必须存储在本地,使用自身的安全系数也存在非常大的问题。

    开发者平台服务商考虑自身的安全因素(第三方可以获取服务商客户的账号密码,对服务商来说是一个安全风险),这种验证方式在未来会受到限制(Twitter已经终止了基本Auth的应用)。

    如果客户更改了用户名和登录密码,则必须重新执行整个登录密码检查过程。



    欢迎分享,转载请注明来源:内存溢出

    原文地址:https://54852.com/zz/778132.html

    (0)
    打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
    上一篇 2022-05-03
    下一篇2022-05-03

    发表评论

    登录后才能评论

    评论列表(0条)

      保存