Django内容安全策略支持。
django-simple-csp的Python项目详细描述
django简单csp
在django中添加csp头和nonce的简单中间件
用法
需要django>;=1.10
将其添加到已安装的应用程序设置变量:
INSTALLED_APPS = [ ... 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', ... 'django-simple-csp' ... ]
将其添加到中间件(不是中间件类):
MIDDLEWARE = [ ... 'django.middleware.security.SecurityMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.common.CommonMiddleware', 'django.middleware.csrf.CsrfViewMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', 'django.middleware.clickjacking.XFrameOptionsMiddleware', ... 'django-simple-csp.middleware.csp.CSPMiddleware', ... ]
css
TOdo:从标记名中删除哈希?
哈希内联样式的使用示例:
{% load csp %} {% csp_css_hash %} td.style-class { background-color: red; } {% end_csp_css_hash %}
chromium暂时不支持在style=“…”属性中使用。
javascript
nonces
待办事项:改成散列?
示例:
{% load csp %} <script nonce={% csp_js_nonce %}> alert("bla") </script>
配置值
csp_report_url=“” URL CSP错误应报告为,如果未使用,则设置为“”或不定义它。
csp_report_only=真 将头设置为仅报告CSP错误不强制执行CSP。默认为true。
csp_附加_脚本_src=[] 允许从
csp_附加_样式_src=[] 允许从
csp_附加_img_src=[] 允许从中加载其他主机映像的列表