欢迎来到咨信网! | 成为共赢成为共赢 咨信网助力知识提升 | 自信网络旗下运营:咨信网 自信AI创作助手 自信AI导航
咨信网
全部分类
  • 包罗万象   教育专区 >
  • 品牌综合   考试专区 >
  • 管理财经   行业资料 >
  • 环境建筑   通信科技 >
  • 法律文献   文学艺术 >
  • 学术论文   百科休闲 >
  • 应用文书   研究报告 >
  • ImageVerifierCode 换一换
    首页 咨信网 > 资源分类 > PDF文档下载
    分享到微信 分享到微博 分享到QQ空间

    Django框架下的用户鉴权机制分析与研究.pdf

    • 资源ID:845280       资源大小:1.33MB        全文页数:3页
    • 资源格式: PDF        下载积分:10金币
    微信登录下载
    验证码下载 游客一键下载
    账号登录下载
    三方登录下载: QQ登录
    二维码
    微信扫一扫登录
    下载资源需要10金币
    邮箱/手机:
    验证码: 获取验证码
    温馨提示:
    支付成功后,系统会自动生成账号(用户名为邮箱或者手机号,密码是验证码),方便下次登录下载和查询订单;
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    VIP下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    声明    |    会员权益      获赠5币      写作写作
    1、填表:    下载求助     索取发票    退款申请
    2、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
    3、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
    4、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
    5、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【自信****多点】。
    6、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
    7、文档遇到问题,请及时私信或留言给本站上传会员【自信****多点】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。

    Django框架下的用户鉴权机制分析与研究.pdf

    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 的一个个中间件,每个中间件有机会观察或修改请求,并将他们传递给下一个中间件,通过了所有中间件的验证放行,请求才能到达视图函数,否则会直接返回客户端。服务器的响应也是通过层层中间件的

    11、验证,进行必要的加工处理后才到达客户端。图 1 Django 中间件原理 中间件其实就是一个类,继承了 MiddlewareMixin类,类内定义了一些函数,如 process _ request()、process_response()等方法。请求到达 Django 程序时会依次执行中间件的 process_request 方法,直到最后一个中间件传递给 view 处理函数。完成 view 处理函数的执行后,将执行的结果 response 返回给最后一个中间件的 process_response 方法,直到第一个中间件处理完 process_response 方法并返回 response2。

    12、关于用户是否登录的校验可以封装在一个中间件的 process_request 方法里,通过 request.session.get()方法获取身份校验信息,对于不需要登录就能访问的网页,如注册、登录页放行(process_request 函数没有返回值或返回为空),对于其他页面,如果没有登录就强制重定向到登录页面。让中 间 件 生 效 需 要 在 settings.py 的 文 件 的MIDDLEWARE 字段注册中间件。中间件按照注册的741第 18 期2023 年 9 月无线互联科技研究创新No.18September,2023顺序从上往下执行,自定义的中间件注册时根据使用场景合理考虑位置

    13、。3.2 装饰器 装饰器(Decorator)本质上是一个 Python 函数或类,用来给其他函数或类添加额外功能而不用修改类或函数本身。下面是一个示例,用于检查用户是否已登录并进行相应的处理。def login_required(view_func):def wrapped_view(request,args,kwargs):if not request.user.is_authenticated:#判断状态是否为登录 return redirect(login)#重定向到登录页面 return view_func(request,args,kwargs)return wrapped_vie

    14、w装饰器的实现方式是函数对象、闭包加 语法糖。Python 的函数可以作为返回值传递给其他函数,这是使用装饰器的基础。闭包就是函数的嵌套,内部函数可以访问外部函数的变量、参数和其他内部函数,最后返回内部函数的引用4。语法糖用于简化装饰器的调用方式,实现方式是在被装饰函数上方添加一个 符号,紧接着是装饰器函数的名字。上述代码定义了一个装饰器 login_required,它接收一个视图函数 view_func 作为参数,并返回一个新的包 裹 了 原 视 图 函 数 的 函 数 wrapped _ view。在wrapped_view 中,检查用户是否已经通过身份验证(即登录状态),如果没有通过验

    15、证,则将用户重定向到登录页面。使用装饰器来保护需要登录验证的视图函数,如下例:login_requireddef my_view(request):#用户必须登录后才能访问的视图函数#执行相应的处理逻辑当使用 语法糖调用装饰器时,被装饰的函数作为装饰器函数的参数传递给装饰器函数,并将装饰器函数的返回值赋值给原始函数的引用。在上述代码中,通过在视图函数 my_view 上使用 login_required装饰器,实现该视图函数只有在用户已登录的情况下才能被访问,否则用户将被重定向到登录页面。Python 的装饰器还可以形成链式调用,一个或多个装饰器可以依次对函数进行包装和修改。4 结语用户鉴权机

    16、制是网络安全的重要组成部分,Django 的用户鉴权机制提供了一个强大而灵活的工具来实现用户认证和权限管理。除了本文提到的session 机制和中间件、装饰器实现的访问控制,Django 还提供了强大的权限系统组件如 Permission、model Permission 等更进阶的封装。通过深入研究和理解这些机制,可以构建出安全可靠的应用程序,并为用户提供良好的访问体验。希望本文的研究能对读者在使用和扩展 Django 的鉴权机制上,提供有益的指导和启示。参考文献1刘翠芬.浅谈基于 HTTP 方式的认证J.职教论坛,2003(20):57.2赵路.Django 框架 CSRF 防御实现机制浅

    17、析J.网络安全技术与应用,2021(4):18-19.3林琳.详细了解 Cookie Session TokenJ.计算机与网络,2019(22):38-40.4李德水.Python 类装饰器装饰方法通用编码模型分析J.电子设计工程,2020(13):41-44,49.(编辑 沈 强)Analysis and research on user authentication mechanism under Django frameworkZhang Xiaomei He Ju She Kankan Dai Caiyan College of Artificial Intelligence and

    18、 Information Technology Nanjing University of Chinese Medicine Nanjing 210023 China Abstract User authentication is an important component of ensuring data security in web applications.Its main function is to confirm the identity of each user in the web application in order to restrict user access a

    19、nd operation of resources.This article starts with the lifecycle and main technical principles of user authentication and combines the interpretation of the basic user authentication mechanisms namely middleware and decorator in the Django framework.It analyzes the importance of user authentication

    20、mechanisms and the diversity of technical implementations from simple to deep allowing readers to understand network security design knowledge based on user authentication from a theoretical perspective and to better understand the design of user authentication logic from the encapsulation process of Django.Key words user authentication Django framework authentication841


    注意事项

    本文(Django框架下的用户鉴权机制分析与研究.pdf)为本站上传会员【自信****多点】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4008-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表




    页脚通栏广告
    关于我们 - 网站声明 - 诚招英才 - 文档分销 - 服务填表 - 联系我们 - 成长足迹

    Copyright ©2010-2024   All Rights Reserved  宁波自信网络信息技术有限公司 版权所有   |  客服电话:4008-655-100    投诉/维权电话:4009-655-100   

    违法和不良信息举报邮箱:help@zixin.com.cn    文档合作和网站合作邮箱:fuwu@zixin.com.cn    意见反馈和侵权处理邮箱:1219186828@qq.com   | 证照中心

    12321jubao.png12321网络举报中心 电话:010-12321  jubao.png中国互联网举报中心 电话:12377   gongan.png浙公网安备33021202000488号  icp.png浙ICP备2021020529号-1 浙B2-2024(办理中)    



    关注我们 :gzh.png  weibo.png  LOFTER.png