ng-bind-html-unsafe
fue eliminado en Angular 1.2
Estoy tratando de implementar algo donde necesito usar ng-bind-html-unsafe
. En los documentos y en el commit de github dicen:
ng-bind-html proporciona un comportamiento similar a ng-html-bind-inseguro (innerHTML es el resultado sin desinfección) cuando está vinculado al resultado de $ sce.trustAsHtml (cadena).
¿Cómo haces esto?
Respuestas:
Eso debería ser:
más en su controlador:
en lugar de la sintaxis anterior, donde puede hacer referencia a la
$scope.html
variable directamente:Como señalaron varios comentaristas,
$sce
debe inyectarse en el controlador; de lo contrario, obtendrá un$sce undefined
error.fuente
<p ng-bind-html="trustedHtml"></p>
y$scope.trustedHtml = $sce.trustAsHtml(description(category.id));
<p ng-bind-html="description(category.id)"></p>
entonces la última línea de la función:return $sce.trustAsHtml(value);
Filtrar
Uso
fuente
ngSanitize
aquí?ngSanitize
, por lo que no hay necesidad dengSanitize
Personalmente desinfecta todos mis datos con algunas bibliotecas PHP antes de ingresar a la base de datos, por lo que no necesito otro filtro XSS para mí.
Desde AngularJS 1.0.8
Usar:
Para deshabilitar
$sce
:fuente
<script>System.out.printIn("Hello World!");</script>
, no lo he intentado personalmente porque mi PHP eliminó todo JS de la entrada del usuario. Eliminé mi segundo ejemplo porque el nativo de Angular es superior en todos los sentidos, solo use ese.var line = "<label onclick="alert(1)">aaa</label>";
1. usar filtro
utilizando (html):
2. use ngSanitize: más seguro
incluir
angular-sanitize.js
agregar
ngSanitize
en la aplicación angular raízutilizando (html):
fuente
Simplemente crear un filtro hará el truco. (Respondido para Angular 1.6)
Y use esto como sigue en el html.
fuente
Si desea recuperar la directiva anterior, puede agregarla a su aplicación:
Directiva:
Uso
Fuente: https://github.com/angular-ui/bootstrap/issues/813
fuente
JavaScript
HTML
fuente
Para Rails (al menos en mi caso) si está utilizando la gema angularjs-rails , recuerde agregar el módulo de desinfección
Y luego cárgalo en tu aplicación ...
Entonces puedes hacer lo siguiente:
En la plantilla:
Y eventualmente:
fuente
fuente
fuente