¿Cómo oculto el código javascript en una página web?

Resuelto arun nair asked hace 13 años • 13 respuestas

¿Es posible ocultar el código Javascript del html de una página web, cuando el código fuente se ve a través de la función Ver código fuente del navegador?

Sé que es posible ofuscar el código, pero preferiría que estuviera oculto de la función de visualización del código fuente.

arun nair avatar Jul 29 '11 13:07 arun nair
Aceptado

No estoy seguro de que alguien más haya respondido directamente a su pregunta, cuál es el código que se ve desde el comando Ver código fuente del navegador.

Como han dicho otros, no hay forma de proteger JavaScript destinado a ejecutarse en un navegador desde un espectador determinado. Si el navegador puede ejecutarlo, cualquier persona determinada también podrá verlo/ejecutarlo.

Pero, si coloca su JavaScript en un archivo JavaScript externo que se incluye con:

<script type="text/javascript" src="http://mydomain.example/xxxx.js"></script>

etiquetas, entonces el código JavaScript no será visible inmediatamente con el comando Ver código fuente; solo la etiqueta del script en sí será visible de esa manera. Eso no significa que alguien no pueda simplemente cargar ese archivo JavaScript externo para verlo, pero usted preguntó cómo mantenerlo fuera del comando Ver código fuente del navegador y esto lo hará.

Si realmente quisiera que fuera más complicado ver la fuente, haría todo lo siguiente:

  1. Ponlo en un archivo .js externo.
  2. Ofusque el archivo para que la mayoría de los nombres de variables nativas se reemplacen con versiones cortas, para que se eliminen todos los espacios en blanco innecesarios, para que no se pueda leer sin un procesamiento adicional, etc.
  3. Incluya dinámicamente el archivo .js agregando etiquetas de secuencia de comandos mediante programación (como lo hace Google Analytics). Esto hará que sea aún más difícil acceder al código fuente desde el comando Ver código fuente, ya que no habrá un enlace fácil para hacer clic allí.
  4. Coloque toda la lógica interesante que desee proteger en el servidor que recupere mediante llamadas AJAX en lugar de realizar un procesamiento local.

Dicho todo esto, creo que deberías centrarte en el rendimiento, la confiabilidad y en hacer que tu aplicación sea excelente. Si es absolutamente necesario proteger algún algoritmo, colóquelo en el servidor, pero aparte de eso, compita por ser el mejor en lo que hace, no por tener secretos. En última instancia, así es como funciona el éxito en la web.

jfriend00 avatar Jul 29 '2011 06:07 jfriend00

No, no es posible.

Si no se lo da al navegador, entonces el navegador no lo tiene.

Si lo hace, entonces (o una referencia fácil de seguir) forma parte de la fuente.

Quentin avatar Jul 29 '2011 06:07 Quentin

Mi solución está inspirada en el último comentario. Este es el código de invisible.html

<script src="http://code.jquery.com/jquery-1.8.2.js"></script>
<script type="text/javascript" src="invisible_debut.js" ></script>
<body>
</body>

El código claro de invisible_debut.js es:

$(document).ready(function () {
var ga = document.createElement("script"); //ga is to remember Google Analytics ;-)
ga.type = 'text/javascript';
ga.src = 'invisible.js';
ga.id = 'invisible';
document.body.appendChild(ga);
$('#invisible').remove();});

Observe que al final estoy eliminando el script creado. invisible.js es:

$(document).ready(function(){
    alert('try to find in the source the js script which did this alert!');
    document.write('It disappeared, my dear!');});

invisible.js no aparece en la consola porque ha sido eliminado y nunca en el código fuente porque fue creado por javascript.

En cuanto a invisible_debut.js, lo ofusqué, lo que significa que es muy complicado encontrar la URL de invisible.js. No es perfecto, pero sí bastante difícil para un hacker normal.

Armand Arapian avatar Nov 19 '2013 22:11 Armand Arapian

Use Html Encrypter La parte del Head que tiene

<link rel="stylesheet" href="styles/css.css" type="text/css" media="screen" />
<script type="text/javascript" src="script/js.js" language="javascript"></script>

copy and paste it to HTML Encrypter and the Result will goes like this
and paste it the location where you cut the above sample

<Script Language='Javascript'>
<!-- HTML Encryption provided by iWEBTOOL.com -->
<!--
document.write(unescape('%3C%6C%69%6E%6B%20%72%65%6C%3D%22%73%74%79%6C%65%73%68%65%65%74%22%20%68%72%65%66%3D%22%73%74%79%6C%65%73%2F%63%73%73%2E%63%73%73%22%20%74%79%70%65%3D%22%74%65%78%74%2F%63%73%73%22%20%6D%65%64%69%61%3D%22%73%63%72%65%65%6E%22%20%2F%3E%0A%3C%73%63%72%69%70%74%20%74%79%70%65%3D%22%74%65%78%74%2F%6A%61%76%61%73%63%72%69%70%74%22%20%73%72%63%3D%22%73%63%72%69%70%74%2F%6A%73%2E%6A%73%22%20%6C%61%6E%67%75%61%67%65%3D%22%6A%61%76%61%73%63%72%69%70%74%22%3E%3C%2F%73%63%72%69%70%74%3E%0A'));
//-->

ENCRYPTER HTML Nota: si tiene un script java en su página, intente exportarlo a un archivo .js y hágalo como en el ejemplo anterior.

Y además, este cifrador no siempre funciona en algún código que pueda estropear su sitio web... Seleccione la mejor parte que desea ocultar, como por ejemplo en<form> </form>

Esto puede ser revertido por un usuario avanzado, pero no todos los novatos como yo lo saben.

Espero que esto ayude

HINAYUPAKS avatar Dec 15 '2012 11:12 HINAYUPAKS