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 metadata提取的PDF元数据,如何转换为一个Excel
  • ¥15 关于arduino编程toCharArray()函数的使用
  • ¥100 vc++混合CEF采用CLR方式编译报错
  • ¥15 coze 的插件输入飞书多维表格 app_token 后一直显示错误,如何解决?
  • ¥15 vite+vue3+plyr播放本地public文件夹下视频无法加载
  • ¥15 c#逐行读取txt文本,但是每一行里面数据之间空格数量不同
  • ¥50 如何openEuler 22.03上安装配置drbd
  • ¥20 ING91680C BLE5.3 芯片怎么实现串口收发数据
  • ¥15 无线连接树莓派,无法执行update,如何解决?(相关搜索:软件下载)
  • ¥15 Windows11, backspace, enter, space键失灵