django-csp避坑清单:字符串当元组、‘self‘漏引号等5个经典配置错误
django-csp避坑清单字符串当元组、self漏引号等5个经典配置错误【免费下载链接】django-cspContent Security Policy for Django.项目地址: https://gitcode.com/gh_mirrors/dj/django-cspdjango-csp 是为 Django 项目添加 Content-Security-PolicyCSP响应头的开源安全组件。新手配置时最容易踩的坑集中在类型写错、引号漏掉、新旧格式混用三类。本文整理 5 个高频配置错误帮你一次性避开这些隐形安全漏洞5 分钟完成自查。错误一EXCLUDE_URL_PREFIXES 写成字符串全站 CSP 失效 ⚠️这是最危险的一个坑。很多人会这样写CONTENT_SECURITY_POLICY { EXCLUDE_URL_PREFIXES: /admin, }后果Python 会把字符串按字符拆开/admin变成[/, a, d, m, ...]。由于几乎每个 URL 都以/开头所有请求都会命中排除规则CSP 头一个都不会下发——你以为加了防护实际裸奔。正确写法必须是 list 或 tupleEXCLUDE_URL_PREFIXES: [/admin],django-csp 内置了安全检查一旦写成字符串会直接报错csp.E002逻辑定义在 csp/checks.py 中。建议每次部署前都跑一遍python manage.py check错误二self忘了加引号策略静默失效 CSP 关键字如self、unsafe-inline在协议里必须带单引号。漏掉引号后self会被当成一个普通域名等于白配# ❌ 错误self 被当作域名 default-src: [SELF.replace(,)], # 别这么干 # ✅ 正确使用 csp.constants 提供的常量 from csp.constants import SELF, NONE, UNSAFE_INLINE default-src: [SELF, cdn.example.net],官方在 docs/configuration.rst 中特意用警告框标注了这一点4.0 版本起提供了 CSP 关键字常量就是为了消灭引号和拼写错误。推荐全部用 csp/constants.py 中的常量常量实际值NONEnoneSELFselfUNSAFE_INLINEunsafe-inlineSTRICT_DYNAMICstrict-dynamic错误三混淆 Python 的None和 CSP 关键字none这两个长得像作用完全相反新手必踩NONE来自 csp.constants值是none表示这个指令不允许任何来源会出现在响应头中。NonePython 关键字表示删除这个指令该指令将不会出现在响应头中。# 禁止任何外部图片 img-src: [NONE], # 完全移除 base-uri 指令 base-uri: None,典型事故想禁止一切却写成了None结果指令被删掉页面回退到default-src的宽松策略防护形同虚设。区分逻辑在 csp/utils.py 的build_policy函数中实现——值为None的指令会被直接跳过。错误四沿用 3.x 的CSP_XXX旧设置新格式全不生效 4.0 是不兼容升级所有CSP_DEFAULT_SRC、CSP_SCRIPT_SRC等旧前缀设置已被移除改为统一的字典格式。旧写法不会报错但策略直接消失。# ❌ 4.0 已失效 CSP_DEFAULT_SRC [self] # ✅ 新格式 CONTENT_SECURITY_POLICY { DIRECTIVES: { default-src: [SELF], }, }好消息是 csp/checks.py 注册了csp.E001检查运行python manage.py check时它会自动扫描旧设置并打印一份迁移好的新格式配置直接粘贴进settings.py即可。完整步骤见 docs/migration-guide.rst。注意两个容易忽略的换算CSP_INCLUDE_NONCE_IN [script-src]→ 改为在script-src列表中加入NONCE常量指令名要小写 短横线如default-src不能用下划线。错误五REPORT_PERCENTAGE 忘记从小数改成百分数 如果你配置了report-uri做违规上报还要注意这个数值陷阱# 旧版0.1 表示 10% CSP_REPORT_PERCENTAGE 0.1 # 新版必须写成 10.0范围 0.0 ~ 100.0 CONTENT_SECURITY_POLICY { REPORT_PERCENTAGE: 10.0, DIRECTIVES: {report-uri: /csp-report/}, }直接照抄旧数值0.1新版本会把它理解为 0.1%几乎收不到任何上报问题排查时一片空白。另外若需要限流上报务必使用 csp/contrib/rate_limiting.py 中的RateLimitedCSPMiddleware替代默认的CSPMiddleware。附赠Nonce 不生效两个前置条件必须同时满足 使用NONCE常量时很多用户发现脚本还是被拦截。原因通常是漏掉了条件指令中必须包含NONCE常量如script-src: [SELF, NONCE]请求生命周期内必须真正读取过request.csp_nonce比如模板里写nonce{{request.csp_nonce}}。只配置不读取时nonce 会被自动从响应头中剔除行为符合预期但容易误判为插件坏了。详细说明在 docs/nonce.rst 中nonce 生成逻辑见 csp/middleware.py 的CSPMiddleware。 小技巧nonce 值在浏览器开发者工具里看不到这是防恶意 CSS 泄露的设计要看值请用查看源码。快速自查清单 ✅配置完成后对照打勾EXCLUDE_URL_PREFIXES是 list/tuple不是字符串全部使用csp.constants常量无裸写的self字符串分清NONE禁止来源与None删除指令已删除所有CSP_前缀旧设置manage.py check无csp.E001REPORT_PERCENTAGE为 0~100 的百分数浮点用NONCE时模板中实际读取了request.csp_nonce按这份清单过一遍django-csp 的绝大多数配置了却没用的问题都能迎刃而解。祝你配置顺利网站安全无忧【免费下载链接】django-cspContent Security Policy for Django.项目地址: https://gitcode.com/gh_mirrors/dj/django-csp创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

JavaScript核心概念与高频面试题解析

JavaScript核心概念与高频面试题解析

1. JavaScript 基础知识点全景解析作为一名从业十年的全栈开发者,我见过太多初学者在JavaScript学习路上踩坑。今天这份总结将系统梳理JS核心概念,结合高频面试题和实际开发中的痛点,帮你构建完整的知识框架。不同于教科书式的罗列&#xff0…

2026/8/25 9:09:03 阅读更多 →
Calibre 格式转换实用教程:三步把任何电子书变成设备能打开的样子

Calibre 格式转换实用教程:三步把任何电子书变成设备能打开的样子

Calibre 格式转换实用教程:三步把任何电子书变成设备能打开的样子 【免费下载链接】calibre The official source code repository for the calibre ebook manager 项目地址: https://gitcode.com/GitHub_Trending/ca/calibre 周五晚上 9 点,你给…

2026/8/25 9:09:03 阅读更多 →
2026年软件测试趋势:核心能力与面试指南

2026年软件测试趋势:核心能力与面试指南

1. 2026年软件测试面试趋势与核心能力要求2026年的软件测试领域正在经历一场深刻变革。随着AI测试工具和自动化测试平台的普及,企业对测试工程师的要求已经从单纯的功能验证转向了质量保障全流程参与。我在最近半年参与了17场不同规模的测试岗位面试,发现…

2026/8/25 9:09:03 阅读更多 →

最新新闻

Redis核心知识点与面试高频考点解析

Redis核心知识点与面试高频考点解析

1. Redis面试核心知识点全景解析Redis作为当今最流行的内存数据库之一,已经成为中高级开发者面试的必考内容。根据我多年参与技术面试的经验,Redis相关的考察点主要集中在数据结构、持久化机制、高可用方案和实际应用场景四大维度。下面我将从面试官视角…

2026/8/25 9:58:17 阅读更多 →
nextjs-portfolio组件架构设计:如何拆分出12个可复用的作品集组件

nextjs-portfolio组件架构设计:如何拆分出12个可复用的作品集组件

nextjs-portfolio组件架构设计:如何拆分出12个可复用的作品集组件 【免费下载链接】nextjs-portfolio portfolio website in nextjs 13 项目地址: https://gitcode.com/gh_mirrors/ne/nextjs-portfolio nextjs-portfolio 是一个基于 Next.js 13 构建的开发者…

2026/8/25 9:58:17 阅读更多 →
Kernel Adiutor 开机自动调优与 Tasker 联动:5 种自动化场景终极指南

Kernel Adiutor 开机自动调优与 Tasker 联动:5 种自动化场景终极指南

Kernel Adiutor 开机自动调优与 Tasker 联动:5 种自动化场景终极指南 【免费下载链接】KernelAdiutor An application which manages kernel parameters 项目地址: https://gitcode.com/gh_mirrors/ke/KernelAdiutor Kernel Adiutor 是一款专为 Root 安卓设备…

2026/8/25 9:58:17 阅读更多 →
为什么Nino这么快?C二进制序列化库性能对比与完整深度剖析

为什么Nino这么快?C二进制序列化库性能对比与完整深度剖析

为什么Nino这么快?C#二进制序列化库性能对比与完整深度剖析 【免费下载链接】Nino Ultimate high-performance binary serialization library for C#. 项目地址: https://gitcode.com/gh_mirrors/ni/Nino Nino 是一款面向 C# 的终极高性能二进制序列化库&…

2026/8/25 9:58:17 阅读更多 →
Android开发面试核心考点与实战技巧

Android开发面试核心考点与实战技巧

1. 面试岗位概述与技术要求NTT DATA作为全球领先的IT服务提供商,其Android开发岗位对候选人的技术广度和深度都有较高要求。根据我过去参与面试和辅导的经验,这类跨国企业的技术面试通常会聚焦以下几个核心维度:基础能力:Java/Kot…

2026/8/25 9:58:17 阅读更多 →
5分钟看懂koa-react-full-example:Koa+React+Passport+Mongoose全栈架构完全指南

5分钟看懂koa-react-full-example:Koa+React+Passport+Mongoose全栈架构完全指南

5分钟看懂koa-react-full-example:KoaReactPassportMongoose全栈架构完全指南 【免费下载链接】koa-react-full-example Full example using Koa, React, Passport, Mongoose, Webpack, Mocha, Babel 项目地址: https://gitcode.com/gh_mirrors/ko/koa-react-full…

2026/8/25 9:57:15 阅读更多 →

日新闻

洛谷 P7912:[CSP-J 2021 T4] 小熊的果篮 ← 双向链表

洛谷 P7912:[CSP-J 2021 T4] 小熊的果篮 ← 双向链表

【题目来源】 https://www.luogu.com.cn/problem/P7912 【题目描述】 小熊的水果店里摆放着一排 n 个水果。每个水果只可能是苹果或桔子,从左到右依次用正整数 1,2,…,n 编号。连续排在一起的同一种水果称为一个“块”。小熊要把这一排水果挑到若干个果篮里&#x…

2026/8/25 0:00:34 阅读更多 →
Transformers.js 网页端图像抠图实战:零后端 3 行代码返回透明 PNG

Transformers.js 网页端图像抠图实战:零后端 3 行代码返回透明 PNG

Transformers.js 网页端图像抠图实战:零后端 3 行代码返回透明 PNG 【免费下载链接】transformers.js State-of-the-art Machine Learning for the web. Run 🤗 Transformers directly in your browser, with no need for a server! 项目地址: https:/…

2026/8/25 0:00:34 阅读更多 →
数学建模竞赛论文写作指南:从模型构建到学术表达的核心技能

数学建模竞赛论文写作指南:从模型构建到学术表达的核心技能

1. 项目概述:从“会做”到“会写”的竞赛核心跃迁“全国大学生数学建模竞赛”,这个名字对理工科学生来说,分量极重。每年,无数团队在三天三夜的时间里,为一个开放性问题绞尽脑汁,从建立模型、求解算法到编程…

2026/8/25 0:00:34 阅读更多 →

周新闻

[光学原理与应用-521]:对光的错误理解与纠偏

[光学原理与应用-521]:对光的错误理解与纠偏

首先光是一种能量的载体和形态,宏观上观察到的光是由无数个微观的光量子组成的,每个光子在产生的瞬间,其在真空的空间中以确定不变的速度沿着一个初始的方向一直向前,在微观层面,每个光量子的运动轨迹是以波函数所展现…

2026/8/25 3:38:12 阅读更多 →
SIP通话转接原理与REFER方法实战解析

SIP通话转接原理与REFER方法实战解析

1. 通话转接不是“挂断再拨号”,而是SIP会话的动态重定向你有没有遇到过这样的场景:客服坐席A正在和客户通电话,突然需要把这通对话无缝转给专家坐席B,客户完全感知不到中间的断连——既没听到忙音,也没被要求重新拨号…

2026/8/25 3:38:18 阅读更多 →
Kolla-ansible单节点OpenStack部署实战:从环境准备到排坑指南

Kolla-ansible单节点OpenStack部署实战:从环境准备到排坑指南

1. 为什么选择Kolla-ansible来部署单节点OpenStack?如果你正在寻找一种能把OpenStack从“概念”快速变成“可用的实验环境”的方法,那么Kolla-ansible几乎是当前最主流、最省心的选择。我见过太多人卡在手动编译依赖、配置服务、处理版本冲突的泥潭里&am…

2026/8/25 3:38:23 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/24 20:22:44 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/23 12:10:44 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/24 11:20:22 阅读更多 →