1

Я работаю над веб-приложением в течение последних нескольких лет и недавно ушел, чтобы сделать его более безопасным, добавив политику безопасности контента.Как исправить ошибки браузера CSP при использовании underscore.js

Я смог исправить большинство проблем, которые я нашел, но я не смог решить одну оставшуюся проблему. CSP жалуется на сообщение об ошибке, когда в приложении underscore.js происходит шаблон. Как я полагаю, он использует no-no; являющийся js-кодом «new Function (...)».

Я видел другие рекомендации в Интернете, будучи в основном:

  • Используйте двигатель прекомпилировать шаблон, например Grunt-inline-template-compile Это полезно, когда у вас есть строки шаблонов рядных, мое все в фактическом html в тегах, поэтому это невозможно было бы без резкого перемещения контента.
  • Переключитесь на другой механизм шаблонов, этот вариант будет более привлекательным для предыдущего, но я боюсь, что он сломает все много строк синтаксиса подчеркивания подчеркивания и станет огромной работой сам по себе.

Есть ли другие варианты, о которых люди знают?

ответ

2

Попробуйте установить заголовок Content-Security-Policy на unsafe-eval для сценариев из вашего домена в качестве временного обходного пути. http://content-security-policy.com/ Затем как можно скорее перейдите к движку шаблонов, например ручке. Вы можете иметь свои шаблоны в отдельных файлах html и компилировать их в javascript как часть вашей сборки. Это дает вам хорошее разделение между html и js при разработке, но хорошая производительность в браузере для ваших пользователей в производственной версии

+0

Закончено с этой опцией. Было немного обмануть, чтобы экспортировать в руль, но в итоге получилось хорошо. –