Este es el diseño previsto y no un problema, excepto cuando los autores del sitio olvidan que este es el diseño previsto.
En una aplicación web, Javascript debe ser legible por el navegador, ya que es donde se analiza y ejecuta. Y cualquier cosa que el navegador pueda leer es legible para un atacante. Por lo tanto, la seguridad del sistema no puede depender del secreto de Javascript.
En cambio, puede estar pensando en las reglas de los scripts CGI. Una secuencia de comandos CGI se ejecuta en el servidor, no en el cliente, y por lo tanto, no es necesario que el cliente necesite . Además, no es inusual que la información "secreta" (como cadenas de conexión de base de datos con nombres de usuario y contraseñas) esté incrustada en el script CGI, lo que significa que tener que ser legible para el cliente es muy malo. Y debido a que es un error de configuración del servidor web algo común (para permitir que el cliente descargue la fuente de script CGI), existe un problema de seguridad.
Por supuesto, algunos autores web prefieren que su Javascript no sea fácil de leer. Esto generalmente es un problema de propiedad intelectual en lugar de seguridad, aunque los autores de malware en particular usarán varias técnicas de ofuscación ( aquí hay un ejemplo ) para dificultar que el atacante lea su código. Esta no es una verdadera medida de seguridad, pero aumenta el costo para el lector para determinar qué está haciendo el Javascript.
A veces los autores olvidan que su Javascript no es secreto. BMC Remedy solía tener una "medida de seguridad" para proteger las credenciales cuando la conexión se realizaba a través de HTTP sin cifrar. El código de Javascript "codificaría" la contraseña del usuario antes de que fuera enviada a través de la red desde el navegador al servidor. Desafortunadamente, el "cifrado" estaba en la línea de "Reemplazar A con Q, reemplazar B con G, ..." y cualquier atacante que leyó el JavaScript y capturó el tráfico no cifrado invirtió fácilmente.