oldbee0925 2023-02-20 08:04 采纳率: 91.4%
浏览 31
已结题

在需要验证访问的django中,ajax如何防止用户注销后被访问?

我的前端时jquery,后端是django。我用django自带的auth验证系统授权访问页面。在使用中发现了一个漏洞:
我有2个页面,“ip/a/ “和 “”ip/b/“”,都在views的index函数中定义(判断a或者b的值后流转)。
我打开a页面后,再打开b页面,然后因为没操作用户被自动注销。这时我点击浏览器(谷歌)的后退按键,回到了a页面,
a页面有很多ajax应用,点击页面发送请求的按钮,这些ajax居然都是正常的!!
我的ajax都是以路由的方式映射到后台的view的对应函数,如下:

    path('ajax_rio/', views.ajax_rio,name='ajax_rio'),
    path('ajax_stock_mv/', views.ajax_stock_mv,name='ajax_stock_mv'),
    path('ajax_stock_R_D_bend/', views.ajax_stock_R_D_bend,name='ajax_stock_R_D_bend'),
    path('ajax_stock_risk/', views.ajax_stock_risk,name='ajax_stock_risk'),

请问:我应当在每个ajax函数前加上@login_required装饰器来限制吗?还有没有更好的办法?

  • 写回答

4条回答 默认 最新

  • 阳光宅男xxb 2023-02-20 08:24
    关注

    其实,并不需要,每个view都加,你可以配置全局的登录验证,这个功能可以通过Middleware中间件来实现。具体怎么写这个中间件,你直接搜索Django全局登陆验证login_required等类似的关键字找,有很多教程。或者我给你找一个:
    https://blog.csdn.net/myy1066883508/article/details/106477893

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 2月27日
  • 已采纳回答 2月27日
  • 创建了问题 2月20日

悬赏问题

  • ¥15 (标签-UDP|关键词-client)
  • ¥15 关于库卡officelite无法与虚拟机通讯的问题
  • ¥15 qgcomp混合物线性模型分析的代码出现错误:Model aliasing occurred
  • ¥100 已有python代码,要求做成可执行程序,程序设计内容不多
  • ¥15 目标检测项目无法读取视频
  • ¥15 GEO datasets中基因芯片数据仅仅提供了normalized signal如何进行差异分析
  • ¥100 求采集电商背景音乐的方法
  • ¥15 数学建模竞赛求指导帮助
  • ¥15 STM32控制MAX7219问题求解答
  • ¥20 在本地部署CHATRWKV时遇到了AttributeError: 'str' object has no attribute 'requires_grad'