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

110
Vistas
Impedir que se editen futuras propiedades de objetos

Soy un desarrollador de juegos JS que ha estado tratando de combatir los scripts de tampermonkey desde hace un tiempo. Se me ocurrió una solución para las personas que se conectan a WebSockets donde haría que el WebSocket arrojara un error new WebSocket(0); ( 0 arroja un error debido a que es un número)

 let output; try { output = new target(...args); } catch(e) { let source = e.stack.substring(e.stack.indexOf("("), 1 + e.stack.indexOf(")")); e.stack = e.stack.replace(source, "nothing to see here"); throw e; }

¡Este código hizo que la pila del error tuviera toda la información que estaba buscando reemplazada!

Estuve mirando Object.defineProperty y me preguntaba cómo podría evitar que se modifique la pila de un error antes de tener acceso a ese error específico. Y si alguien tiene otras formas de evitar que se cargue o ejecute un script, ¡me encantaría escucharlas!

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Una cosa que podría hacer es Object.freeze el error antes de lanzarlo. Esto evitaría que la gente altere el contenido del objeto.

Así por ejemplo:

 try { new WebSocket(0); } catch (wsErr) { throw Object.freeze(wsErr); }

El código que detecta su error e intenta modificarlo no podrá modificarlo. Esto debería funcionar ya que hará que el código que estaba alterando el error arroje lo siguiente:

 Cannot assign to read only property 'stack' of object ''

La otra cosa que deberá considerar es que en su código donde está detectando el error, tampoco podrá modificar su contenido. Por lo general, con errores, eso no es un gran problema. La manipulación de errores es una de las únicas razones que se me ocurren para modificar el error.

about 4 years ago · Juan Pablo Isaza 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