Django框架下的用户鉴权机制分析与研究.pdf
《Django框架下的用户鉴权机制分析与研究.pdf》由会员分享,可在线阅读,更多相关《Django框架下的用户鉴权机制分析与研究.pdf(3页珍藏版)》请在咨信网上搜索。
1、第 18 期2023 年 9 月无线互联科技Wireless Internet TechnologyNo.18September,2023基金项目:国家自然科学基金青年基金项目;项目名称:名老中医甲状腺疾病辨治规律挖掘策略及方法研究;项目编号:No.82004498。南京中医药大学校自然科学基金青年基金项目;项目名称:基于衰减系数的动态蛋白质网络建模及研究;项目编号:No.NZY61906100。作者简介:张小梅(2000),女,贵州毕节人,本科生;研究方向:计算机网络与应用。通信作者:何菊(1979),女,江苏常州人,讲师,博士研究生;研究方向:中医药人工智能与大数据分析。Django 框架
2、下的用户鉴权机制分析与研究张小梅,何 菊,佘侃侃,戴彩艳(南京中医药大学 人工智能与信息技术学院,江苏 南京 210023)摘要:用户鉴权是 Web 应用中保障数据安全性的重要组成部分,主要作用是确认 Web 应用程序中每个用户的身份,以便限制用户对资源的访问和操作。文章从用户鉴权的生命周期、主要技术原理切入,结合 Django 框架初级的用户鉴权机制即中间件、装饰器的解读,由浅入深地分析了用户鉴权机制的重要性以及技术实现的多样性,让读者从原理上了解基于用户鉴权实现的网络安全设计常识,并且能从 Django 的封装过程中更好地体会用户鉴权逻辑的设计。关键词:用户鉴权;Django 框架;身份验
3、证中图分类号:TN915.04 文献标志码:A0 引言 用户鉴权是指验证用户身份以限制用户对资源的正确访问与操作,是应用程序中保护用户隐私的重要组成部分。通常,用户鉴权机制包括通过特殊的方式验证用户身份以及设计权限级别来限制用户访问或操作两部分,实现系统的安全性和数据的保密性。本文从用户鉴权的生命周期引入,分析实现用户鉴权的步骤原理;再深入介绍主流的鉴权机制,简单说明不同机制的优缺点;最后以 Django 框架为例,分析用户认证的两种封装思路 中间件和装饰器,完整地解读用户鉴权是什么以及多样的实现思路。1 用户鉴权的生命周期 基于用户登录才能使用完整服务的网站具有完整的用户鉴权机制,系统产生的
4、数据需要从用户身份的维度进行维护和管理,用户鉴权需要经过 5 个步骤。1.1 用户提交身份验证凭证 网站的注册登录页面是用户鉴权机制的开始,常见的凭证方式有用户名密码验证、第三方认证(如登录某 Web 系统时选择使用 Google 账号登录)和单点登录(用户在一个 Web 应用中登录后,可以自动登录到另一个 Web 应用中)。1.2 服务器验证凭证的有效性 通俗来说,这个阶段是对用户提交的信息进行校验。比对用户名、密码是否与数据库内存储的一致,或者通过外部接口实现的第三方认证、单点登录信息是否有效。如果校验不通过,将返回错误提示信息给前端,如果验证通过,进入用户机制验证的下一个阶段。1.3 服
5、务器校验成功 用户身份验证成功,服务器将会生成一个唯一的标识符代表用户身份,并根据用户身份生成一个用户会话来存储用户身份凭证,其中唯一标识符会作为响应的一部分传到客户端保存。基于不同的使用场景,可以分为 cookie、session 和 token 3 种机制。1.4 用户访问受保护的资源 用户登录之后向程序发起的每一次请求,都会自动带上保存在客户端的唯一标识符,如果访问的资源是受保护的,Web 应用会主动检查唯一标识符的有效性,即会话的有效性,如果会话已超时,就重定位到登录页面。1.5 服务器注销用户凭证和会话 当用户完成操作或注销登录后,服务器会注销用户凭证和会话。2 用户认证机制 Web
6、 应用程序是基于 HTTP 网络传输协议实现的,而 HTTP 本身具有无连接的特点,即每次请求和响应之间是独立的,为实现用户认证,需要根据使用场景使用额外的技术来实现和维持登录状态1。2.1 用户认证之 cookie cookie 的原理是将用户身份验证信息以小型的文本文件方式保存在客户端浏览器中,每次用户向Web 服务器发起请求时,浏览器会自动将 cookie 附加到 HTTP 请求头中发送给 Web 服务器,服务器通过解641第 18 期2023 年 9 月无线互联科技研究创新No.18September,2023析 cookie 来获取用户身份验证信息2。cookie 的优点是易于实现和
7、管理,但由于用户可以在本地修改和操纵 cookie,因此必须谨慎使用。此外,cookie 还有大小限制,可以存储的用户信息较少。2.2 用户认证之 session session 是为了解决 cookie 存储在客户端容易被篡改或伪造而升级的一种机制,通过 session 对象的方式将用户身份信息存储在服务器,而 session 对象包含的唯一 id 则作为 cookie 的一部分传递到客户端浏览器保存。当用户再次访问网站时,就通过 session id 查找对应的 session 对象,检查是否过期。相较于cookie 而言,session 机制将用户鉴权信息保存在服务器端,因此比 cook
8、ie 更加安全。2.3 用户认证之 token token 是用户登录成功后,服务器为用户创建的基于 json 格式存储用户信息的认证机制。token 以cookies 或缓存的方式存在于客户端,与 cookie 相比,token 以包含签名的方式防止伪造3。token 主要应用在微服务、移动应用、对外 API 场景中,属于高级的用户认证机制。2.4 Django 的 session 机制 在 Django 中使用的用户认证机制是 session 机制。默认情况下 Django 将 session 对象存储在数据库中,也可以将 session 存储在缓存中或文件中。常见的网站首页未登录时右上角
9、显示“登录”按钮,已登录时则显示当前登录的用户名这一场景,用 Django实现的步骤如下。(1)在 setting.py 文件中设置 session 的存储方式:session_engine 值(默认为 Django.contrib.sessions.backends.db,即数据库存储)。(2)设置 session 信息:在视图中通过 request.sessionsession_key=session_value 的格式设置以键值形式存储的session 信息。(3)使用 session 信息:在模板中使用 request.session.session_key 来获取 session 的
10、 key;在视图函数中通过 request.session.get(session_key)的方式获取 session 的 key。3 Django 的访问控制机制 Django 的 Access Control 提供了多种访问控制方式,包括中间件、装饰器等多种机制,以适应不同的鉴权场景。3.1 中间件 客户端与浏览器的交互在 Django 机制下的过程是:客户端发起的请求在到达视图函数处理前会先经过 Django 的一个个中间件,每个中间件有机会观察或修改请求,并将他们传递给下一个中间件,通过了所有中间件的验证放行,请求才能到达视图函数,否则会直接返回客户端。服务器的响应也是通过层层中间件的
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Django 框架 用户 机制 分析 研究
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【自信****多点】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【自信****多点】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。