一组模板标记(和mixin!)协助建立支持CSP的网站。
django-csp-helpers的Python项目详细描述
django csp助手
一组模板标记(和mixin!)帮助建立支持CSP的网站使用 django-csp。在
安装
- 在您的
INSTALLED_APPS
中添加“csp\u helpers”:
INSTALLED_APPS=[...'csp_helpers',]
混音
django csp helpers包括一对mixin,它们可以应用于视图和表单 允许在小部件和表单媒体中使用CSP nonce。在
如何使用
只需将CSPViewMixin添加到视图中,并将CSPFormMixin添加到表单或模型表单中。 您需要同时使用bothmixin,它们不是单独工作的。在
CSPFormMixin
^{pr2}$CSPViewMixin
fromcsp_helpers.mixinsimportCSPViewMixinfrom.formsimportArticleFormclassArticleUpdateView(CSPViewMixin,UpdateView):form_class=ArticleForm...
仅使用CSPFormMixin
如果您是手动管理表单,或者不使用基于类的视图,您将无法
使用CSPViewMixin。在这些情况下,只需使用csp_nonce
作为参数调用表单
手动操作,如下所示。在
form=MyFancyForm(csp_nonce=request.csp_nonce)
它的作用
django csp helpersmixin将以两种方式修改和扩展视图和表单。在
窗体小部件
表单小部件将被修补以将CSP nonce注入到模板的呈现上下文中
小工具。您可以使用窗口小部件模板中的{{ csp_nonce }}
来访问它。在
表单媒体
表单媒体(CSS和JS)将包含在CSP nonce中。在
模板标记
django csp helpers还包括一对模板标记
渲染包csp
精确替换django-webpack-loaderrender_bundle
标记,包含带有CSP nonce的包。在
{% load render_bundle_csp %} {% render_bundle_csp 'main' 'css' %} {% render_bundle_csp 'main' 'js %}
媒体
上面mixin提供的表单媒体功能的一个不太高级的版本。只需加载此标记 并向它传递一个表单,它将包含带有CSP nonces的表单媒体。在
{% load media_csp %} {# include form media #} {% media_csp myform %}
许可证
这个软件是在麻省理工学院许可下发布的。在
Copyright (c) 2019-2020 Luke Rogers
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
- 项目
标签: