Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

109
Visualizações
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 Respostas
Responde à pergunta

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda