Django检测到会话cookie中缺少HttpOnly属性手工复现

news2025/1/23 17:36:54

一、漏洞复现

        会话cookie中缺少HttpOnly属性会导致攻击者可以通过程序(JS脚本等)获取到用户的cookie信息,造成用户cookie信息泄露,增加攻击者的跨站脚本攻击威胁。

55faf34d4ca742d180bf4d37e88bd25f.png

        第一步:复制URL:http://192.168.43.219在浏览器打开,使用F12调试工具;

        第二步:选择Application,点击Cookies查看csrftoken的Value信息;

ddf1eb025f7f4c709935204d0450ae8f.png

        第三步:选择Console,输入命令alert(document.cookie);

5dd8d9a81c84414b92281ca1c22ac98f.png

        第四步:对比csrftoken的Value信息,如果可以获取值相同,说明存在BUG。

二、漏洞修复

在settings.py中添加以下代码:

CORS_ALLOW_ALL_ORIGINS = True
CSRF_COOKIE_HTTPONLY = True  # 防止XSS攻击
CSRF_COOKIE_SECURE = True  # 防止CSRF攻击
CSRF_COOKIE_SAMESITE = 'Strict'  # 防止CSRF攻击
SESSION_COOKIE_SECURE = True  # 防止session劫持
SESSION_COOKIE_SAMESITE = 'Strict'  # 防止session劫持
CSRF_TRUSTED_ORIGINS = ['你的域名']  # csrf跨域

aca3dfaa344644ce9eacba2b15a6778b.png

        此时HttpOnly已经修复,再次选择Console,输入命令alert(document.cookie);

0b325282c2bf44d68f63549b2ef1ce8d.png

        弹出框已经不存在csrftoken的Value信息。

三、HttpOnly 属性的作用 

        1. 防止跨站脚本攻击(XSS)

        XSS 攻击是一种常见的网络攻击,黑客通过注入恶意脚本来窃取用户 cookie,获取用户敏感信息。将 cookie 设置为 HttpOnly 可以阻止这种攻击,因为恶意脚本无法访问或修改包含敏感信息的 cookie。

        2. 增加会话安全性

        由于会话 cookie 经常用于管理用户的登录状态和身份验证,将其设置为 HttpOnly 可以增加会话的安全性。黑客无法在用户的浏览器中获取会话 cookie 的值,进而无法伪造用户身份。

        3. 减少信息泄露风险

        将 cookie 设置为 HttpOnly 可以减少敏感信息泄露的风险。即使恶意脚本成功注入网页,它也无法获取存储在 cookie 中的敏感数据。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1576101.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Switch摇杆模块超好手感超小体积-适用于Arduino创客

Mini摇杆模块 1.模块照片 2.接线 摇杆模块的 G、V、X、Y 、SW分别连接 UNO 的G、V、A0、A1、D2引脚。 3.程序 /*rocker test- 摇杆测试This example code is in the public domain.Author : YFROBOT ZLWebsite : www.yfrobot.com.cnCreate Time: 2024 */#define XP…

自定义gitlog格式

git log命令非常强大而好用,在复杂系统的版本管理中扮演着重要的角色,但默认的git log命令显示出的东西实在太丑,不好好打扮一下根本没法见人,打扮好了用alias命令拍个照片,就正式出道了! 在使用git查看lo…

CentOS7.9.2009安装elasticsearch7.11.1(单节点)

本文章使用CentOS7.9.2009服务器安装elasticsearch7.11.1软件 1.服务器信息 [root@elasticsearch ~]# cat /etc/redhat-release CentOS Linux release 7.9.2009 (Core) [root@elasticsearch ~]# [root@elasticsearch ~]# cat /etc/hosts | grep elasticsearch 192.168.10.24…

消息队列MQ(面试题:为什么使用MQ)

一、什么是mq? MQ全称 Message Queue(消息队列),是在消息的传输过程中保存消息的容器。多用于分布式系统之间进行通信,解耦。 二、常见的mq产品 RabbitMQ、RocketMQ、ActiveMQ、Kafka、ZeroMQ、MetaMq RabbitMQ: One broker …

34470A是德科技34470A数字万用表

181/2461/8938产品概述: Truevolt数字万用表(34460A、34461A、34465A、34470A)利用是德科技的新专利技术,使您能够快速获得见解、测量低功耗设备并保持校准的测量结果。Truevolt提供全方位的测量能力,具有更高的精度、…

Centos7源码方式安装Elasticsearch 7.10.2单机版

下载 任选一种方式下载 官网7.10.2版本下载地址: https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.10.2-linux-x86_64.tar.gz 网盘下载链接 链接:https://pan.baidu.com/s/1EJvUPGVOkosRO2PUaKibaA?pwdbnqi 提取码&#x…

mysqldump: Got error: 1049: Unknown database ‘root‘ when selecting the datab

1.问题描述 MySQL版本号:MySQL Server 8.3MySQL持久化到处数据库结构及数据 mysqldump: Got error: 1049: Unknown database root when selecting the datab2.问题解决 cmd 切换本地路径 cd /d D:\Program Files\MySQL\MySQL Server 8.3\bin执行数据库备份命令 …

【Linux系列】“dev-node1“ 运行的操作系统分析

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

avro c++编译与使用

一、arvo介绍 Avro 是 Hadoop 中的一个子项目,也是一个数据序列化系统,其数据最终以二进制格式,采用行式存储的方式进行存储。 Avro提供了: 1)、丰富的数据结构。 2)、可压缩、快速的二进制数据格式。 3)、一个用来存储持久化数据…

飞书文档如何在不同账号间迁移

今天由于个人需要新建了一个飞书账号,遇到个需求就是需要把老帐号里面的文档迁移到新的账号里面。在网上搜了一通,发现关于此的内容似乎不多,只好自己动手解决,记录一下过程以便分享,主要有以下几个步骤。 1. 添加新账…

如何使用Chainguard保护您的容器部署

你不需要说服我,容器绝对是虚拟化革命中最棒的东西。我几乎每天都会使用各种类型的容器。 但是,只需一次模板化并到处部署的美妙之处伴随着一个成本:如果模板中的一个单独层包含安全漏洞怎么办?如果那里藏着一个漏洞,…

golang web 开发 —— gin 框架 (gorm 链接 mysql)

目录 1. 介绍 2. 环境 3. gin 3.1 gin提供的常见路由 3.2 gin的分组 main.go router.go 代码结构 3.3 gin 提供的Json方法 main.go route.go common.go user.go order.go 3.4 gin框架下如何获取传递来的参数 第一种是GET请求后面直接 /拼上传递的参数 第二种是…

pandas去重、删除重复数据之duplicated()

pandas去重、删除重复数据之duplicated 1.pandas中重复索引问题2.pandas删除重复数据行3.drop_duplicates()函数的语法4.案例:pandas数据处理——取出重复数据 1.pandas中重复索引问题 df df[~df.index.duplicated()]2.pandas删除重复数据行 # 首先导入常用的两个…

AURORA64B66B IP核使用

文章目录 前言一、IP核配置二、设计框图三、上板效果总结 前言 前面我们基于GT 64B66B设计了自定义PHY层,并且也介绍过了基于AURORA8B18B IP核的使用,AURORA8B18B IP核的使用可以说是与AURORA8B18B IP核完全一致,可参考前文:http…

绝地求生:29.1版本爆料杜卡迪联名、新通行证、成长型AUG和异色、战队皮

这回的更新爆料是真的多,虽然不会同时上线,本期杜卡迪因为没有轮毂和轮胎,所以车漆的颜色可能会贵一点,但是似乎会有进阶优惠礼包可以购买 合作者战队 本期合作者战队皮肤感觉比较一般,武器不是热门武器,而…

项目:自主实现Boost搜索引擎

文章目录 写在前面开源仓库和项目上线其他文档说明 项目背景项目的宏观原理技术栈与环境搜索引擎原理正排索引倒排索引 去标签和数据清洗模块html文件名路径保存函数html数据解析函数文件写入函数 建立索引模块检索和读取信息建立索引建立正排索引建立倒排索引jieba工具的使用倒…

物联网可视化平台

随着数字化转型的深入,物联网技术正在成为企业实现智能化、高效化运营的重要工具。物联网可视化平台,作为连接物理世界与数字世界的桥梁,为企业提供了直观、实时的数据展示和监控能力,从而在数字化转型中扮演着关键角色。 一、物…

Android 11 上的文件读写无权限问题

Android 6以上需要动态申请读写权限,但是11以上动态申请了读写权限也是无效。并且手动给予权限没有该按钮。 如上图华为钱包有个所有文件权限、但是百度地图只有仅媒体权限,仅媒体权限(动态申请读写权限)给予后软件还是没法访问文…

js通过Object.defineProperty实现数据响应式

目录 数据响应式属性描述符propertyResponsive 依赖收集依赖队列寻找依赖 观察器 派发更新Observer完整代码关于数据响应式关于Object.defineProperty的限制 数据响应式 假设我们现在有这么一个页面 <!DOCTYPE html> <html lang"en"><head><m…

Android Studio学习15——多页面情况下再看Activity生命周期

按返回键退出APP时&#xff1a; 走正常页面的退出流程&#xff1a;onPause–>onStop–>onDestroy(会Destroy,因为它从任务栈中退出了) 再点击图标回来时&#xff1a; 走正常页面的创建流程&#xff1a;onCreate–>onStart–>onResume 按Home键退出App时&#xff1a…