Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

158
Vistas
ElementRef riesgo de seguridad angular 2

¿Por qué ElementRef no es seguro de usar? Si es así, ¿qué podemos usar en su lugar?

He estado usando este ElementRef para ver o mirar una etiqueta html específica y luego enviarla como un ancho específico después de inicializar, pero si esto abre un riesgo de seguridad, no lo usaré y, para ser honesto, no entiendo por qué angular 2 equipos permiten este tipo de fallas de seguridad en su marco.

¿Cuál es la mejor y más segura técnica para usar? Mi componente de prueba a continuación:

 import { Component, OnInit } from '@angular/core'; @Component({ selector: 'app-standard', template: ` <button type="button" #buttonW></button>`, }) export class standardComponent implements OnInit { name: string = 'app-standard'; viewWidthButton: any; @ViewChild( 'buttonW' ) elButtonW: ElementRef; constructor() { this.viewWidthButton = this.elButtonW.nativeElement.offsetWidth; console.log ('button width: ' + this.viewWidthButton); } ngOnInit() { } }

Referencia de página de Angular 2:

https://angular.io/docs/ts/latest/api/core/index/ElementRef-class.html

about 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

El uso ElementRef no hace que su sitio sea directamente menos seguro. El equipo de Angular solo dice "Oye, puedes usar esto, solo ten cuidado con eso" .

Si solo está utilizando un ElementRef para obtener información, como en su ejemplo, un cierto ancho, no hay ningún riesgo de seguridad involucrado. Es una historia diferente cuando usas un ElementRef para modificar el DOM . Allí, pueden surgir amenazas potenciales. Tal ejemplo podría ser:

 @ViewChild('myIdentifier') myIdentifier: ElementRef ngAfterViewInit() { this.myIdentifier.nativeElement.onclick = someFunctionDefinedBySomeUser; }

El problema con esto es que se inserta directamente en el DOM, omitiendo los mecanismos de sanitización de Angular. ¿Qué son los mecanismos de sanitización? Por lo general, si algo en el DOM se cambia a través de Angular, Angular se asegura de que no sea nada peligroso. Sin embargo, cuando se usa ElementRef para insertar algo en el DOM, Angular no puede garantizarlo. Por lo tanto, es su responsabilidad que nada malo ingrese al DOM cuando use ElementRef . Una palabra clave importante aquí es XSS (Cross-Site Scripting).

Para resumir: si sondeas el DOM para obtener información, estás a salvo. Si modifica el DOM usando ElementRef , asegúrese de que las modificaciones no contengan código malicioso.

about 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda