对django中内容安全策略的nonce支持。

django-csp-nonce的Python项目详细描述


Build Status

dcn是一个内容安全策略nonce注入支持系统,用于 Django和CSP。

它提供即时创建和部署。一次 安装后,DCN将生成唯一的nonce
对于每个请求(一个用于script-src,另一个用于 style-src指令)将nonce附加到
csp头,然后通过 django上下文处理器。
dcn不受Django-CSP的影响,可以运行
独立于通过的任何csp插入方法 django中间件。

披露

  • 此代码尚未通过第三方安全审核。
  • 我已经用pypy-5.4.1在本地成功地测试了这个。土传病 已经确认这不适用于他们的版本。

安装

pip install django-csp-nonce

将dcn添加到MIDDLEWARE_CLASSES

MIDDLEWARE_CLASSES=([...]'csp_nonce.middleware.CSPNonceMiddleware',# Make sure you put it *above* django-csp if you're using it[...])

将dcn添加到context_processors

TEMPLATES=[{'BACKEND':'django.template.backends.django.DjangoTemplates','DIRS':[...],'APP_DIRS':True,'OPTIONS':{'context_processors':['csp_nonce.context_processors.nonce',[...]],},},]

最后,将dcn指令添加到设置:

CSP_NONCE_SCRIPT=False# True if you want to use itCSP_NONCE_STYLE=False# True if you want to use itCSP_FLAG_STRICT=False# True to include strict-dynamic in CSP

用法

DCN替你照顾这一代人。当你工作的时候 在模板上,从上下文中拉入特定的nonce:

<script type="text/javascript" {{script_nonce}}>
...
</script>

<style {{style_nonce}}>
...
</style>

依赖关系

  • Django

已知问题

  • settings.DEBUG=True
  • 上的即时同步中断

重要更改

  • 1.0
    • 超出测试版!
    • pynacl不再是依赖关系。(向前推进的目的是 与google app engine等环境保持兼容 不支持非python扩展。)

运行测试

使用tox对多个版本的python运行测试 您已经安装了django的多个版本。请确保 至少对Python2.7和Python3.5运行测试。

virtualenv venv
. ./venv/bin/activate

pip install tox

tox

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
打印val在Java中可以用作变量吗?   java如何以矩阵格式存储2D数组(带逗号)   java获取空的响应正文,带有Inversion2>无法填充数据   java Jackson UnrecognizedPropertyException存在时引发   java为什么我可以在非公共类中拥有公共成员?   如何在Java中从外部库导入包?   java如何从不推荐使用的日期类型替换getDate()?   java如何将数据集转换为JavaPairDD?   如何在JavaSpring中创建3d数组   合法线程操作的java定义   如何从java文本文件中读取输入   从StringArray java中的标记/单词构建句子   将UDP从Java发送到Python不起作用   java显示组织。日食xsd。XSDSchema内容