Ответ 1
-
Вы не делаете свое приложение менее безопасным. Вы уже вставляли HTML на свою страницу со старым методом ng-bind-html-unsafe. Вы все еще делаете то же самое, но теперь вам нужно явно доверять исходному HTML, а не просто указывать, что часть вашего шаблона может выводить необработанный HTML. Требование использовать $sce затрудняет случайное принятие необработанного HTML из ненадежного источника - в старом методе, в котором вы только объявляете доверие к шаблону, плохой ввод может пробиться в вашу модель так, как вы не думали.
-
Если контент поступает из вашего домена или домена, которым вы управляете, тогда вы в безопасности - по крайней мере, так же безопасно, как и вы. Если кто-то каким-то образом может взломать полезную нагрузку ответа из вашего собственного домена, тогда ваша безопасность уже полностью ввернута. Обратите внимание, однако, что вы должны не когда-либо звонить $sce.trustAsHtml на контент, который поступает из домена, в котором не.
-
Помимо проблем с ремонтопригодностью, я не вижу ничего плохого в том, как вы это делаете. Наличие тонны HTML в файле JSON может быть не идеальным, но до тех пор, пока разметка разумно семантическая и не слишком плотная, я думаю, что это нормально. Если разметка становится значительно более сложной, я бы рассмотрел ее разделение на отдельные файлы шаблонов или wiki файлов angular по мере необходимости, вместо того, чтобы пытаться управлять связкой разметки, завернутой в строки JSON.