Почему мой content-security-profile (django-csp) не работает должным образом для представления/шаблона, загруженного в bootstrap modal? В остальном работает нормально
Я не стал приводить код шаблона, потому что он не имеет значения. Это тег скрипта в шаблоне:
<script nonce="{{ CSP_NONCE }}" src="{% static 'js/mmImport.js' %}" defer
data-mmimporturl="{% url 'mmImport' %}">
</script>
Settings.py
MIDDLEWARE = [
'csp.middleware.CSPMiddleware'
....]
# Content Security Policy',
CSP_DEFAULT_SRC = ("'self'")
CSP_IMG_SRC = ("'self'")
CSP_STYLE_SRC = ("'self'")
CSP_SCRIPT_SRC = ("'self'")
CSP_INCLUDE_NONCE_IN = ('script-src')`
Итак, два сценария...
- Я загружаю этот вид/шаблон в модале, который находится на главной странице. Если я включаю 'unsafe-inline, проблем не возникает. Все работает. Форма/вид/шаблон ведет себя нормально. Без unsafe-inline и только с приведенными выше политиками он выдает следующую ошибку:
[Ошибка] Отказано в выполнении сценария, поскольку его хэш, nonce или 'unsafe-inline' не указаны в директиве script-src политики безопасности содержимого. (mmHomepage, строка 0)
- Я загружаю представление как собственную страницу/шаблон; не модальный. Прямолинейный шаблон Django. С политиками CSP, как указано выше, страница работает нормально. Ошибок нет.
Подозреваю, что дело в том, как вид/шаблон обрабатывается модалами bootstrap. Не уверен, где искать. Я новичок в Django-csp, поэтому не знаком с этим. Только начал знакомиться со спецификацией.
Я также попробовал вынести этот js-код в шаблон, чтобы не вызывать отдельный файл. Не удалось. Та же ошибка.
Пожалуйста, помогите! Спасибо!