Я создаю угловое приложение и настроил CSP в Apache vhost. Одна из проблем, с которой я столкнулся, - это загрузка моих скриптов, нелегко вручную занести в белый список все скрипты. Кроме того, приложение генерирует встроенные сценарии при каждой сборке.
Следующий код, расположенный в моем index.html, генерирует случайный одноразовый номер и устанавливает атрибут для всех моих тегов сценария. Теперь у меня осталась проблема с передачей этого заголовка CSP в apache.
<script>
// generate random string for nonce
var randomString = function(length) {
var text = "";
var possible = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
for(var i = 0; i < length; i++) {
text += possible.charAt(Math.floor(Math.random() * possible.length));
}
return text;
}
// set value to recommended 32
var rs = randomString(32);
// load all script tags and set nonce attribute
window.onload=function() {
var scripts = document.getElementsByTagName("script");
for (var i=0;i<scripts.length;i++) {
if (scripts[i].src) i,scripts[i].setAttribute("nonce", rs)
else i,scripts[i].setAttribute("nonce", rs);
}
}
</script>
Любая помощь будет оценена.