ng-bind-html-unsafe
foi removido no Angular 1.2
Estou tentando implementar algo em que preciso usar ng-bind-html-unsafe
. Nos documentos e no github, eles dizem:
ng-bind-html fornece um comportamento semelhante a ng-html-bind-inseguro (innerHTML é o resultado sem higienização) quando associado ao resultado de $ sce.trustAsHtml (string).
Como você faz isso?
Respostas:
Isso deve ser:
mais no seu controlador:
em vez da sintaxe antiga, onde você pode fazer referência
$scope.html
diretamente à variável:Como vários comentadores apontaram,
$sce
deve ser injetado no controlador, caso contrário, você receberá um$sce undefined
erro.fonte
<p ng-bind-html="trustedHtml"></p>
e$scope.trustedHtml = $sce.trustAsHtml(description(category.id));
<p ng-bind-html="description(category.id)"></p>
então a última linha da função:return $sce.trustAsHtml(value);
Filtro
Uso
fonte
ngSanitize
aqui?ngSanitize
, por isso não há necessidade dengSanitize
Pessoalmente, desinfecto todos os meus dados com algumas bibliotecas PHP antes de entrar no banco de dados, para que não haja necessidade de outro filtro XSS para mim.
From AngularJS 1.0.8
Usar:
Para desativar
$sce
:fonte
<script>System.out.printIn("Hello World!");</script>
, não tentei isso pessoalmente porque meu PHP removeu todas as JS da entrada do usuário. Eu removi meu segundo exemplo, porque o nativo do Angular é superior em todos os aspectos, basta usá-lo.var line = "<label onclick="alert(1)">aaa</label>";
1. use filtro
usando (html):
2. use ngSanitize: mais seguro
incluir
angular-sanitize.js
adicionar
ngSanitize
aplicativo angular raizusando (html):
fonte
Simplesmente criar um filtro fará o truque. (Respondido para Angular 1.6)
E use isso da seguinte forma no html.
fonte
Se você deseja a diretiva antiga de volta, pode adicioná-la ao seu aplicativo:
Directiva:
Uso
Fonte - https://github.com/angular-ui/bootstrap/issues/813
fonte
Javascript
HTML
fonte
Para Rails (pelo menos no meu caso), se você estiver usando a gem angularjs-rails , lembre-se de adicionar o módulo sanitize
E carregue-o no seu aplicativo ...
Então você pode fazer o seguinte:
No modelo:
E eventualmente:
fonte
fonte
fonte