Вы можете включить AngularJS поддержку CSP. Подробнее здесь. Пример кода ниже:
<!doctype html>
<html ng-app ng-csp>
...
...
</html>
ng-csp
силы не использовать код, который может быть введен как eval
и Function
. ng-sanitize от doc.
Ввод дезинфицируется путем разбора HTML в токенах. Все безопасные токены (из белого списка) затем сериализуются обратно, чтобы правильно экранировать строку html. Это означает, что небезопасный ввод может привести к возвратной строке , однако, поскольку наш синтаксический анализатор является более строгим, чем обычный синтаксический анализатор браузера , возможно, что какой-то неясный ввод, который будет признан действительным HTML браузером, выиграл Проведите через дезинфицирующее средство. Ввод также может содержать разметку SVG. Белый список , сконфигурированный с использованием функций aHrefSanitizationWhitelist
и imgSrcSanitizationWhitelist
из $ compileProvider
.
Это просто вы не можете прикрепить мир кода, используя innerHTML.
За $ sce вы можете ссылаться на следующие ссылки. TrustasHTML и с его хорошим tutorial.
Помимо этого, вы можете использовать токен аутентификации.
Редактирование: вы можете проверить ввод в backend, чтобы убедиться, что впрыски не выполнены.
Это слишком широкий вопрос без какого-либо прецедента. Угловые функции, описанные в этой статье, великолепны, но есть способы обойти эти функции, если вы не знаете, что делаете с JS. Добавьте пример использования с кодом, чтобы продемонстрировать его, и может быть предоставлен более подходящий ответ. –
@Ben Rondeau спасибо за ваш ответ, я просто хочу добавить базовый уровень безопасности в свое приложение, не делая его медленнее, что будет включать в себя все три пункта, которые я указал выше. Если вы можете предоставить какой-то пример или какую-нибудь статью для справки это было бы большой помощью. –