对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第三方库


热门话题
java OpenShift的齿轮特性   java如何在Liferay站点的每个页面上放置公司地址和电话?   java确定整数数组中是否存在一个子集,在两个条件下求和到给定的目标值   序列化为什么java中的serialVersionUID必须是静态的、最终的、长类型的?   java响应返回null   java注入接口实现Quarkus   java我不明白为什么第二次排序的运行时间比第一次慢?   (Java)显示图像的最佳方式?   java Android应用程序因添加布局而崩溃   java如何在运行时获取泛型变量的类   java Selenium web驱动程序:无效的选择器:*:WebKitFullScreenSentor   Spring中的java注入值始终为空   Eclipse中带有TestNG插件的@BeforeSuite和@AfterSuite的java问题   使用trycatch块、filewriter和printwriter在java中创建自定义类   如何在Java 安卓上绘制相交的两条线