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

126
Vistas
Cómo convertir una función en una cadena sin activación/uso de ningún módulo en javascript

Aparentemente, esto podría parecer un duplicado... pero déjame explicarte el problema.
Por el bien de la pregunta, TODO lo que puedo suponer es que mi código se ejecutará, no sé nada sobre los módulos (si son falsos o algo así) y solo puedo confiar en las cosas que se configuran en instancias que solo mi código controlará (o establecerá originalmente que no se pueden configurar)

Lo que quiero hacer es, como dice mi encabezado, convertir una función en una cadena. Sin embargo, todos mis intentos de conversión dependen de un módulo que el cliente puede sobrescribir.

 Function.prototype.toString=()=>"pwned" //work of the client //failed attempts to convert to string below console.log(`${Object.keys}`) //"pwned" console.log(Object.keys+'') //"pwned" console.log(Object.keys.toLocaleString()) //"pwned"

Comenzando con la única suposición que estoy haciendo (que mi código se está ejecutando), probé esto a continuación, sin embargo, devuelve indefinido (pensé que devolver nada de alguna manera lo convertiría en la cadena predeterminada)

 //infinityLoop is a function I write(all this is inside another self calling function) and the name suggests what it does //the concept in this example is to run the code and if it smells anything suspicious, infinite loop try{(function(href){ var symbol=Symbol.toPrimitive, c=1, here=arguments.callee var testObj={[symbol]:function(){return here===arguments.callee.caller?c++:infinityLoop()}} if(testObj-0!==1 || c!==2){throw "bruh"} function str(item){ var measure=null, unit={}, count=0 function verifier(hint){ const condition=hint!=="default" || this!==item || verifier.caller!==str || count!==0 if(condition){infinityLoop()} else{ measure=unit; count++ } } item[symbol]=verifier; const string=item+'' if(measure!==unit || count !==1){throw "bruh"} delete item[symbol]; return string } str(Object.keys) //"undefined" //I get to control the conversion but I still can't convert it ;-; })()}catch{infinityLoop()}

¿Es posible convertir una función en una cadena sin módulos sobrescribibles o es una pregunta ridícula e imposible?

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

0

Esto no es posible.

Si no controla ni confía en el entorno que ejecuta el código, tampoco puede controlar ni confiar en lo que hace el código.

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