Как использовать aframe.js с политикой безопасности контента на веб-сервере
По соображениям безопасности Политика безопасности контента является обязательной на нашем информационном сервере в Интернете. Для этой цели в IIS был сохранен следующий заголовок ответа, который нельзя изменять:Имя: Значение политики безопасности контента : default-src 'none'; скрипт-источник 'сам'; Connect-SRC 'сам'; img-src 'собственные' данные: blob:; стиль-источник 'сам'; фрейм-источник 'сам';
Если используется aframe.js, ошибка возникает во всех браузерах (Chrome, Firefox и Edge): Uncaught EvalError: отказался оценивать строку как JavaScript, поскольку unsafe-eval не является разрешенным источником сценария в следующей политике безопасности контента. директива: «script-src 'self'».
Как aframe позволяет использовать его, несмотря на настройки Политики безопасности контента? Как я могу изменить aframe.js, чтобы это работало без ошибок?
Параметры политики безопасности содержимого IIS изменять нельзя!
1 ответ
Многие библиотеки, платформы и плагины JavaScript полагаются на использование «eval()» или подобных функций для динамического создания и выполнения кода. Если CSP запрещает использование unsafe-eval, эти сценарии могут работать неправильно с ошибкой:
Uncaught EvalError: отказался оценивать строку как JavaScript, поскольку unsafe-eval не является разрешенным источником сценария в следующей директиве политики безопасности контента: «script-src 'self'».
Но добавление специальной директивы CSP, разрешающей «небезопасную оценку» aframe.js, потребует изменения настроек CSP IIS, а разрешение «unsafe-eval» представляет угрозу безопасности и действительно должно использоваться с осторожностью.
Возможно, вы можете изменить сценарий, чтобы исключить использование «unsafe-eval», что можно сделать путем предварительной компиляции кода сценария вместо использования функции «eval».