Como cualquier otra cosa en Internet, AngularJS no es inmune a los ataques. Sin embargo, Angular proporciona seguridad integrada contra los agujeros de seguridad básicos. Entonces AngularJS fue diseñado para ser compatible con medidas de seguridad como HTTPS (SSL/TLS), CSP, etc.
La directiva ng-CSP se usa para cambiar la política de seguridad de AngularJS y para romper muchas reglas de CSP (Política de seguridad de contenido) cuando sea necesario. Tampoco ejecutará ninguna de las funciones de evaluación y ayudará a detener la inyección de códigos en línea en la aplicación. Es necesario cuando estamos desarrollando aplicaciones para sistemas operativos (aplicación de Windows) o para navegadores (como Google Chrome Extensions, Firefox Extensions, etc.).
Sintaxis:
<element ng-csp="no-inline-style | no-unsafe-eval"> </element>
Explicación de parámetros:
no-unsafe-eval: ni los estilos en línea ni los estilos de evaluación están permitidos y, por lo tanto, el valor puede mantenerse vacío.
no-inline-style: si el valor está separado por un punto y coma (;) o se mantiene vacío, pero ambos se comportarán como un valor vacío. De los 2 valores descritos, el valor podría ser cualquiera de ellos.
Ejemplo: Este ejemplo muestra el uso de la directiva ng-csp.
<!DOCTYPE html> <html> <script src= "https://ajax.googleapis.com/ajax/libs/angularjs/1.6.9/angular.min.js"> </script> <body ng-app="" ng-csp> <div ng-app=""> <body style = "text-align:center"> <h2 style = "color:green">GeeksForGeeks</h2> <h2 style = "color:purple">AngularJS ng-cloak</h2> <p>The expression is {{ 10 + 10 }}</p> </body> </div> <p></p> </body> </html>
Salida:
Cuando cargamos el código:
La forma en que el código es ejecutado por las expresiones de AngularJS, cambia cuando usamos la directiva ng-app.
La diferencia no se puede decir simplemente mirándola, sino que se impone el uso de otra forma de evaluar las expresiones. Esto aumenta considerablemente el tiempo de evaluación, en torno a un 30% más.
Publicación traducida automáticamente
Artículo escrito por SohomPramanick y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA