Subresource Integrity for Django
Project description
Django SRI
Subresource Integrity for Django.
Installation
pip install django-sri
And add sri
to your INSTALLED_APPS
.
Usage
django-sri
is designed to be used through template tags:
{% load sri %}
{% sri "index.js" %} <!-- Will output "<script src='/static/index.js' integrity='sha256-...'></script>" -->
{% sri "index.css" %} <!-- Will output "<link rel='stylesheet' href='/static/index.css' integrity='sha256-...'/>" -->
Specific tags are also available:
{% load sri %}
{% sri_js "index.js" %} <!-- Will output "<script src='/static/index.js' integrity='sha256-...'></script>" -->
{% sri_css "index.css" %} <!-- Will output "<link rel='stylesheet' href='/static/index.css' integrity='sha256-...'/>" -->
For performance, the hashes of files are cached in memory using lru_cache
for future requests.
Note: By default, integrity hashes are not output when DEBUG
is True
, as static files change a lot during local development. To override this, set USE_SRI
to True
.
Algorithms
The SRI standard supports 3 algorithms: sha256, sha384 and sha512. By default, SHA256 is used. To override this, supply an additional argument to the sri
template tag (or the specific ones):
{% load sri %}
{% sri "index.js" "sha512" %} <!-- Will output "<script src='/static/index.js' integrity='sha512-...'></script>" -->
The default algorithm can be changed by setting SRI_ALGORITHM
to the required algorithm.
Just the integrity value
To retrieve just the integrity hash (the contents of the integrity
attribute), you can use the {% sri_integrity %}
tag, which supports the same arguments as the other tags.
"Does this work with whitenoise or alike?"
Yes. django-sri
outputs the static file URL in the same way the builtin static
template tag does. This means the correct cachebusted URLs are output.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file django-sri-0.1.1.tar.gz
.
File metadata
- Download URL: django-sri-0.1.1.tar.gz
- Upload date:
- Size: 3.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.45.0 CPython/3.8.2
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3df7bf87e6bb5c26d6c3858bd90ed8f0f04201243db5d7ae30c0637b8bd101db |
|
MD5 | 2093f0c056777bc7582052c7c28d9c68 |
|
BLAKE2b-256 | 578b72298ba8d0c5a143f2c831feb39c93d6ac57c6c60af3311fd5f204efe199 |