Proteger código

Me gustaría saber cual es el sistema más seguro, común que se utiliza para proteger los scripts de las páginas web. Me es bastante importante que el usuario no pueda ver el código ya que forma parte de un test de nivel y accediendo a el código y nanalizandolo minimamante puede saber cuales serian las respuestas correctas. Así que debería ocultar al menos un par de funciones. Es javascript del lado del cliente, con servidor Win2000, usamos ASP.
2

2 respuestas

Respuesta
1
Bienvenido al mundo del código que no se puede proteger.
Si te refieres a código ASP, el mismo no puede ser visto por el usuario, puesto que este es ejecutado en servidor -que es donde se ha de hacer el control de acceso-
Si te refieres a Scripts de javascript o vbscript inmerso en una página web, o sea, que se ejecute en cliente, siento decirte que este es imposible de proteger con método alguno -si bien puedes poner las cosas un pelín difíciles (pero usuarios con un poco de experiencia acabaran viéndolo).
Ya te digo, si deseas hacer un control de acceso este ha de hacerse en servidor. Es la única forma segura.
Cuando me refiero a ocultar no me refiero a que me codifiques con claves de 128 bits mi código para que ni yo pueda verlo, sino poner las cosas bien difíciles, lo suficiente como para no emrecer la pena el esfuerzo para el resultado que se va a tener. Porque como imaginaras no estoy haciendo "LA GRAN PÁGINA SECRETA DE INTERNET", sino un test de nivel de ingles para colocarte más o menos en un nivel u otro. Si la gente es tan tonta que se quiere ver las respuestas y engañarse a si mismo en el nivel que posee, pues allá ellos pero yo tengo que poner unos mínimos medios. Y a esos mínimos medios me refiero porque tal y como esta ahora con un simple ver código fuente y mirar un poco se ve claramente cual es la respuesta.
Y no, evidantemente no me refería al código servidor, a ASP. Me refiero a los script del lado del cliente.
Agur
Es que no hay manera de codificar el código -en el cliente-. Si quieres hacer un test veraz y que no hagan trampa la solución es que el usuario no tenga acceso al código. Una solución podría ser tener el jscript en una página externa, pero mirando el fuente se puede encontrar la dirección y cargarlo.
La única solución posible que se me ocurre al problema es esa. Tienes otras opciones que son un poco chapuza. En el IExplore se puede hacer que cuando pulses el botón derecho del ratón este no responda al menu usual. Si abres una ventana sin menús y sin la posibilidad de ver el código con el botón derecho del ratón pones un poco de dificultades. Pero ya te digo, si el cliente lo recibe el cliente lo tiene.
Lo que si que podrías hacer para que el usuario no viera las respuestas fácilmente es hacerles un XOR con un numero. De esta manera si mirara el código tendría basura en las respuestas. Luego lo único que tendrías que hacer es un XOR a lo que han introducido y obtendrías el resultado. Aunque no se si se puede hacer en JScript porque nunca lo he probado. La teoría es que cada cadena de texto en realidad es un numero en bytes. Si le haces un XOR con digamos 64, ese numero cambia. Si tomas el resultado de tus queries y haces el mismo XOR si no obtienes el mismo numero entonces es que la respuesta es errónea.
Lo de la ventana sin botones e impedir el botón derecho ya esta listo, pero como sabes no son más que las formas.
El poner la función de marras en otro fichero .js, ya lo he probado pero no se por que da error. <script src="asd.js"></script> con algo asi deberia funcionar,no? Pues nada, en cambio si utilizo un include si tira. Puede ser por que uso alguna sentencia ASP en esa función(no tiene sentido pero...¿)?
Lo que comentas del XOR no ses si sera lo que necesito aunque parece interesante, si sabes de alguna dirección donde explique esa técnica te lo agradecediria. Por lo demás no se si esa técnica se podrá aplicar a una simple función javaScript, teniendo en cuenta que lo que esl usuario introduzca no me interesa lo que yo realmente quiero ocultar es esa función donde aparecen el orden de las respuestas y cual es la correcta.
Gracias
No se de ninguna página que explique lo del XOR. A grandes rasgos tenemos que si a un numero binario 0110 le haces un XOR con otro, pues este cambia-o sea, que serian caracteres basura-, pero si le vuelves a hacer el XOR con el mismo numero lo tienes de nuevo. Tampoco es una solución, porque el usuario tiene el código... pero claro esta ya no tendría la respuesta inmedita. Te recomiendo de veras que hagas el parsing de la respuesta en el servidor. Te ahorraras muchos quebraderos de cabeza. ¿Al fin y al cabo para eso tienes el ASP no?.
En cuanto al uso de ASP dentro de un JSCript, mientras el ASP este dentro de los <% %> lo único que recibe el cliente sera el resultado de ejecutar el VBScript.
Respuesta
1
Pues como no lo programes todo en ASP, es imposible.
La única trampa es desde javascript, interceptar la pulsación del botón derecho del ratón, y sacar una patalla, o un mesaje o lo que sea, pero esto no es muy difícil de saltar, ahora que si estas en un examen, pues en principio no tienes demasiado tiempo para perderlo en estas cosas.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas