django-csp 4.0破坏性变更迁移指南:一条manage.py check命令自动生成新配置
django-csp 4.0破坏性变更迁移指南一条manage.py check命令自动生成新配置【免费下载链接】django-cspContent Security Policy for Django.项目地址: https://gitcode.com/gh_mirrors/dj/django-cspdjango-csp 是 Django 项目最常用的Content Security PolicyCSP安全响应头中间件。4.0 版本引入了破坏性变更原先一堆CSP_前缀的独立配置项全部废弃改为字典式的CONTENT_SECURITY_POLICY配置。别慌官方内置了一条python manage.py check命令能自动识别旧配置并生成新配置模板跟着本文走几分钟即可完成迁移。django-csp 4.0 到底改了什么先了解变更全貌迁移时心里才有数 变更项3.8 及以前4.0 起配置方式CSP_DEFAULT_SRC、CSP_SCRIPT_SRC等独立设置统一为CONTENT_SECURITY_POLICY字典Report-Only只能二选一可同时配置强制策略 报告策略NonceCSP_INCLUDE_NONCE_IN [script-src]在指令值中直接加入NONCE常量request.csp_nonce取值即测试为真未以字符串读取前为假运行环境支持 Django ≤ 3.2 / Python 3.8均已不再支持变更详情可见 CHANGES.md 的 4.0 章节。快速上手3 步完成 django-csp 4.0 升级第 1 步升级包pip install -U django-csp第 2 步注册应用在settings.py的INSTALLED_APPS中加入csp。这一步是关键——只有注册应用后内置的 Django 系统检查system checks才会生效。第 3 步运行检查命令python manage.py check如果项目里还残留旧版CSP_配置命令会报出一个csp.E001级别的错误并且直接打印出为你自动生成的新配置草案。manage.py check 是如何自动生成新配置的这是 4.0 最贴心的设计。检查逻辑位于 csp/checks.py维护了一份 30 余项旧配置名清单CSP_DEFAULT_SRC、CSP_SCRIPT_SRC等逐个检测你的settings.py把命中的旧配置批量翻译成新字典去掉CSP_前缀、下划线变连字符、全部小写如CSP_SCRIPT_SRC→script-src自动处理细节CSP_REPORT_PERCENTAGE的百分比换算、CSP_INCLUDE_NONCE_IN转成NONCE哨兵值、CSP_EXCLUDE_URL_PREFIXES的归位等。举个例子旧配置CSP_DEFAULT_SRC [self, *.example.com] CSP_SCRIPT_SRC [self, js.cdn.com/example/] CSP_IMG_SRC [self, data:, example.com] CSP_EXCLUDE_URL_PREFIXES [/admin]manage.py check输出的新配置大致如下CONTENT_SECURITY_POLICY { EXCLUDE_URL_PREFIXES: [/admin], DIRECTIVES: { default-src: [SELF, *.example.com], script-src: [SELF, js.cdn.com/example/], img-src: [SELF, data:, example.com], }, }你只需把这段输出粘贴回settings.py再把旧的CSP_配置删掉即可。新旧配置细节对照这些坑要注意NONCE 的写法变了不再单独列出哪些指令带 nonce而是直接把NONCE常量放进对应指令的源列表常量定义见 csp/constants.pyfrom csp.constants import NONCE, SELF CONTENT_SECURITY_POLICY { DIRECTIVES: { script-src: [SELF, NONCE], }, }REPORT_PERCENTAGE 改为浮点数旧值0.1要写成10.0表示上报 10% 的违规报告。装饰器同步升级视图上的csp、csp_update、csp_replace现在接收字典参数并支持REPORT_ONLY参数csp_exempt无论有没有参数都必须加括号。全局搜索这四个装饰器逐个替换即可。自定义中间件要改子类方法如果你继承过CSPMiddleware旧的build_policy/build_policy_ro方法已弃用4.1 移除请改为重写get_policy_parts它会返回一个可修改的PolicyParts数据类而不是最终字符串。迁移清单逐条核对✅pip install -U django-csp升级完成✅INSTALLED_APPS已添加csp✅manage.py check通过无csp.E001错误✅ 旧CSP_前缀配置已全部删除✅NONCE、REPORT_PERCENTAGE等细节已按新格式调整✅ 视图装饰器与自定义中间子已更新✅ 生产 预发布环境各跑一次python manage.py check 小技巧建议先配置一个更严格的CONTENT_SECURITY_POLICY_REPORT_ONLY报告策略观察浏览器上报的违规数据再逐步收紧强制策略避免一次性改严导致页面炸掉。完整配置说明见 docs/configuration.rst官方迁移文档见 docs/migration-guide.rst。按以上步骤操作django-csp 4.0 的迁移其实就是一条 check 命令的事升级后你还能顺手用上强制 报告双策略这一新能力让站点安全再上一个台阶 【免费下载链接】django-cspContent Security Policy for Django.项目地址: https://gitcode.com/gh_mirrors/dj/django-csp创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

新技术分享:ComfyUi+MinimaxH3进阶教程(四)导演台工作流搭建

新技术分享:ComfyUi+MinimaxH3进阶教程(四)导演台工作流搭建

说明:若对文章中的内容有任何困惑的地方,可以对文章进行赞赏,赞赏后,可以发私信给作者,赞赏金额不限制,多少都可以! 前面我们做的MinimaxH3的工作流,只能出单段的视频&#…

2026/11/9 7:44:28 阅读更多 →
解决 PyCharm 在 Conda 环境下索引卡顿的问题

解决 PyCharm 在 Conda 环境下索引卡顿的问题

前几天跟着langchain的教程学习到RAG部分时,由于要学习各种文档加载器的使用所以要安装额外的依赖,但是安装完后每次使用pycharm启动这个项目都会很卡顿,cpu占用率也会直接拉满,编译器中的窗口一直显示“Analyzing project”&…

2026/10/24 15:48:40 阅读更多 →
Go货币处理库currency完整指南:告别float64浮点误差,仅40KB数据搞定全球货币

Go货币处理库currency完整指南:告别float64浮点误差,仅40KB数据搞定全球货币

Go货币处理库currency完整指南:告别float64浮点误差,仅40KB数据搞定全球货币 【免费下载链接】currency Currency handling for Go. 项目地址: https://gitcode.com/gh_mirrors/cu/currency currency 是一个专为 Go 语言打造的货币处理库&#xf…

2026/10/24 8:07:09 阅读更多 →

最新新闻

Electron桌面应用开发实战:从环境搭建到打包发布全流程

Electron桌面应用开发实战:从环境搭建到打包发布全流程

做前端这些年,我大部分时间都在跟浏览器标签页打交道,直到第一次把桌面应用跑起来,才发现原来自己一直被限制在地址栏和刷新按钮围起来的框框里。Electron这个词,最开始是在某段时间频繁出现在同事的讨论里,一个用HTML…

2026/11/13 5:13:25 阅读更多 →
滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

简介:亚太天能T109滑盖智能锁产品说明书是一份PDF格式的官方技术文档,主要面向智能锁安装人员、终端用户及售后维护者,帮助快速掌握产品安装、配置与常见故障处理。全包仅1个PDF文件,大小4.37MB,内容结构清晰&#xff…

2026/11/13 5:13:25 阅读更多 →
PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

上个月我在调试一台高速AGV的驱动系统,整车要求空载跑到8m/s,电机转速已经拉到额定点,驱动器的输出电压也顶到了母线电压极限附近。再往上踩速度指令,转速纹丝不动,三相电流反而开始震荡。那会儿我的第一反应就是&…

2026/11/13 5:13:25 阅读更多 →
C++核心知识点:从内存管理到STL的实战指南

C++核心知识点:从内存管理到STL的实战指南

C 这门语言我前前后后折腾了十几年,用它写过嵌入式驱动、做过游戏服务端,也搭过基础组件库。每次看到新人一头扎进"C 核心知识点"这个搜索词,我其实挺感慨的——这门语言的难点从来不是语法多,而是知识点之间的耦合太深…

2026/11/12 18:22:26 阅读更多 →
T109滑盖智能锁怎么装?安装调试与故障排查全攻略

T109滑盖智能锁怎么装?安装调试与故障排查全攻略

简介:亚太天能T109滑盖智能锁产品说明书以PDF格式发布,适合智能锁用户、安装人员与售后维修人员阅读。内容围绕T109系列指纹密码刷卡锁展开,先介绍前面板、后面板、锁体、机械钥匙、电池盒盖等部件名称与功能,再给出完整安装步骤&…

2026/11/12 18:22:25 阅读更多 →
LLM知识降熵:从信息垄断到理解权下放

LLM知识降熵:从信息垄断到理解权下放

你有没有过这种经历:翻开源码注释、论文摘要或者一份专业报告,每个字都认识,连在一起却像天书。想找人聊聊,身边要么没人懂,要么懂的懒得跟你解释。后来我试着把同一段内容丢给一个大语言模型,几秒钟之后&a…

2026/11/13 5:13:25 阅读更多 →

日新闻

周新闻

月新闻