Me preguntaba si hay alguna manera de verificar si se ejecutó una línea de código JavaScript en el navegador que podría causar un problema para el usuario si deja su PC y alguien quiere ejecutar un código, digamos xor.decode(password) y luego evita que eso suceda eliminando esa solicitud y envía un mensaje divertido en la consola como jajajaja you tried, L bozo! ;
Sí, estoy tratando de cifrar una contraseña en el extremo de los usuarios, pero lamentablemente estoy usando xor porque no puedo configurar un servidor de nodo para mi proyecto, por ahora, por supuesto, más adelante ( aunque esto es solo una estúpida seguridad del sistema operativo web no lo es) realmente necesario ya que espero que los usuarios no inicien sesión en esto), puedo agregar eso y aumentar la seguridad) en este momento, por lo que usar una mejor herramienta de cifrado con, por ejemplo, npm está fuera de la ecuación
Fundamentalmente, no realmente. Si el usuario tiene acceso al código que ejecuta su navegador (que es lo que hace), y si tiene acceso a algo codificado que el código puede decodificar, entonces si sabe un poco sobre JavaScript, puede jugar con el código y, si invierten suficiente esfuerzo, consigue que decodifique la cadena.
Hay formas en las que puede hacer que sea más difícil para el usuario hacer eso, como:
Pero es imposible prevenir por completo. Si desea una seguridad medianamente razonable, debe realizar la validación (y el almacenamiento del hash/contraseña cifrada) en el backend.
Pero
xor.decode(password)
Para esta situación en particular, parece que algo que podría hacer es guardar la contraseña en un formato que no se pueda descifrar. En lugar de eso, codifica la contraseña: utiliza un algoritmo unidireccional que convierte la contraseña en una secuencia de caracteres sin sentido que no se puede volver a convertir en la contraseña original. De esta manera, la contraseña original no se puede recuperar mediante JavaScript. (Pero, el usuario aún puede omitir la verificación por completo, si se ejecuta solo en el lado del cliente...)
No necesita crear su secuencia de comandos con NPM para usar hashing.