¿Por qué las personas deshabilitan JavaScript?

59

Hice una pregunta ayer ¿Debería molestarme en desarrollar JavaScript deshabilitado? . Creo que el consencus es: Sí, debería desarrollar JavaScript deshabilitado. Ahora solo quiero entender por qué los usuarios deshabilitan JS. Parece que muchos desarrolladores (supongo que las personas que respondieron las preguntas son desarrolladores) deshabilitan JS. Porqué es eso. ¿Por qué los usuarios deshabilitan JS? ¿Por seguridad? ¿Velocidad? ¿o que?

Jiew Meng
fuente
99
Creo que estás haciendo suposiciones basadas en evidencia anecdótica. El hecho es que el 99.7% de los usuarios no apaga JS. De hecho, si realmente hubieran desactivado JS, no habrían respondido la pregunta aquí, porque este sitio no funciona sin JS.
vartec
2
No conozco a nadie que lo haga.
kirk.burleson
66
@varted, @kirk: Conozco a muchas personas que lo hacen, o al menos en parte. Muchas personas conscientes de la seguridad solo permitirán JavaScript en sitios que incluyan en la lista blanca, por ejemplo. Y sé mucho que deshabilitan JS en su teléfono inteligente, ya que a menudo vale la pena la batería que agota.
haylem
1
Tengo JavaScript deshabilitado en Chrome de forma predeterminada, por razones de seguridad, aunque lo habilito para sitios web que valen la pena. Realmente no me gusta que tantos sitios web no funcionen sin javascript, hay más y más que no funcionarán en absoluto.
Czarek Tomczak
2
@HannesKarppila Todavía pueden usar cookies de dominio cruzado e imágenes de seguimiento de errores web, etc. El seguimiento de los usuarios funciona bien a menos que deshabiliten JavaScript y las cookies, en cuyo caso Internet es bastante inutilizable.
NickG

Respuestas:

80

Uno deshabilita JavaScript en un entorno de navegador debido a las siguientes consideraciones:

  • Velocidad y ancho de banda
  • Usabilidad y accesibilidad
  • Soporte de plataforma
  • Seguridad

Velocidad y ancho de banda

Muchas aplicaciones usan demasiado JavaScript para su propio bien ... ¿Necesita partes de su interfaz para que las llamadas AJAX las actualicen todo el tiempo? Tal vez su interfaz se sienta excelente y rápida cuando se usa con una conexión de banda ancha, pero cuando tiene que reducir a velocidades de conexión más lentas, se prefiere una interfaz más optimizada. Y desactivar JavaScript es una buena manera de evitar que las aplicaciones web boquiabiertas refresquen el mundo cada 15 segundos más o menos sin una buena razón. (¿Alguna vez viste la cantidad de datos que envía Facebook? Da miedo. Sin embargo, no es solo un problema relacionado con JS, sino que es parte de él).

También tendemos a descargar más y más procesamiento al cliente, y si utiliza hardware minimalista (o simplemente obsoleto), es extremadamente lento.

Usabilidad y accesibilidad

No todas las interfaces de usuario deben expresarse de manera dinámica, y el contenido generado por el servidor puede ser perfectamente aceptable en muchos casos. Además, algunas personas simplemente no quieren este tipo de interfaces. No puede complacer a todos, pero a veces tiene la oportunidad y el deber de satisfacer a todos sus usuarios por igual.

Finalmente, algunos usuarios tienen discapacidades, ¡y nunca las ignorarás !

Los peores escenarios aquí, en mi opinión, son sitios web del gobierno que intentan "modernizar" sus interfaces de usuario para que parezcan más amigables al público, pero terminan dejando una gran parte de su público objetivo. Del mismo modo, es una pena que un estudiante universitario no pueda acceder al contenido de su curso: porque es ciego y su lector de pantalla no es compatible con el sitio, o porque el sitio es tan pesado y requiere complementos modernos ad-hoc que él / ella no puede instalar en esa computadora portátil restaurada comprada en e-bay hace 2 años, o de nuevo porque él / ella regresa a su país a otro país para las vacaciones de primavera y las restricciones de ancho de banda local no pueden hacer frente a la carga útil del sitio.

No todos viven en un mundo perfecto.

Soporte de plataforma

Este punto se relaciona con los 2 anteriores y tiende a ser menos relevante hoy en día, ya que los navegadores incorporan motores JavaScript que son un nivel de magnitud más eficientes de lo que solían ser, y esto sigue mejorando.

Sin embargo, no hay garantía de que todos sus usuarios tengan el privilegio de usar navegadores modernos (ya sea por restricciones corporativas, que nos obligan a admitir navegadores antediluvianos sin una buena razón, realmente, u otras razones que pueden o no ser válidas). Según lo mencionado por "Matthieu M." En los comentarios, debe recordar que mucha gente todavía usa hardware de menor calidad y que no todos usan el teléfono inteligente más reciente y moderno. A partir de hoy, todavía hay una porción significativa de personas que usan teléfonos que tienen navegadores integrados con soporte limitado.

Pero, como mencioné, las cosas mejoran en esta área. Pero aún debe recordar los puntos anteriores sobre las limitaciones de ancho de banda si sigue sondeando muy regularmente (o sus usuarios disfrutarán de una buena factura telefónica).

Todo está muy relacionado entre sí.

Seguridad

Si bien, obviamente, podría pensar que no se puede hacer nada particularmente peligroso con JavaScript teniendo en cuenta que se ejecuta en un entorno de navegador, esto es totalmente falso.

Te das cuenta de que cuando visitas P.SE y SO, inicias sesión automáticamente si iniciaste sesión en cualquier otra red, ¿verdad? Hay algunos JS allí. Sin embargo, esa parte sigue siendo inofensiva, pero utiliza algunos conceptos que pueden ser explotados por algunos sitios malévolos. Es completamente posible que un sitio web use JavaScript para recopilar información sobre algunas cosas que hace (o hizo) durante su sesión de navegación (o las anteriores si no borra los datos de su sesión cada vez que sale de su navegador o ejecuta el ahora modos de navegación privados o de incógnito comunes) y luego simplemente cárguelos en un servidor.

Las vulnerabilidades recientes (que trabajaban en los principales navegadores en ese momento) incluían la capacidad de recopilar sus datos de formularios de entrada guardados (probando combinaciones para usted en una página malévola y grabando los textos sugeridos para cada combinación de letras de inicio posible, posiblemente informando a los atacantes quién es usted) , donde trabajas y vives ) o para extraer tu historial de navegación y tus hábitos ( un truco muy inteligente que hace algo tan simple como inyectar enlaces en el DOM de la página para que coincida con el color del enlace y ver si ha sido visitado . Solo tienes que hacerlo esto en una tabla lo suficientemente grande de nombres de dominio conocidos. Y su navegador cada vez más rápido en el procesamiento de JavaScript, este tipo de cosas se hace rápidamente).

Además, no olvidemos que si el modelo de seguridad de su navegador es defectuoso, o los sitios web que visita no se protegen lo suficiente contra ataques XSS, entonces uno podría usar JavaScript para simplemente acceder a sus sesiones abiertas en sitios web remotos.

JavaScript es mayormente inofensivo ... si lo usa para sitios web confiables. Gmail Facebook (tal vez ... y ni siquiera ...). Lector de Google. StackExchange.

Pero sí, claro, JavaScript no puede ser tan malo, ¿verdad? Y de todos modos, hay cosas más aterradoras que temer en línea. Como pensar que eres anónimo cuando realmente no lo eres tanto , como lo demuestra el experimento Panopticlick del EFF . Lo que también se hace en parte usando JavaScript. Incluso puede leer sus razones para deshabilitar JavaScript para evitar las huellas digitales del navegador .


Dicho todo esto, puede haber situaciones perfectamente buenas en las que no necesite preocuparse por admitir JavaScript. Pero si ofrece un sitio web de servicio público, considere aceptar ambos tipos de clientes. Personalmente, creo que muchas aplicaciones web modernas y sitios web funcionarían igual de bien utilizando el antiguo modelo de contenido generado por el servidor sin JavaScript en absoluto en el lado del cliente, y aún sería excelente y posiblemente consumiría mucho menos.

Su kilometraje puede variar según su proyecto.

haylem
fuente
55
Facebook, por ejemplo, es una gran pérdida para su CPU. Me he encontrado con algunos sitios que estaban tan mal codificados (o parecían estarlo) que básicamente congelarían mi computadora al cargar completamente la CPU (con algunas otras pestañas abiertas).
Mark C
3
@ Mark C: Considero enviar hasta 140K por hacer clic en "enviar" cuando escribo un comentario, un uso ligeramente exagerado de los formularios web, honestamente. Podría haber estado en casos específicos en el momento y que se han solucionado desde entonces (con suerte). Viví durante un corto tiempo en un país con una postura restrictiva de la censura de Internet y no con una calidad de conexión tan buena, ¡y eso te hace apreciar mucho más los buenos sitios web basados ​​en texto!
haylem
8
+1 por mencionar accesibilidad. La mitad de la maldita web es completamente inutilizable para mí, y no soy un usuario casual de computadora ni necesito confiar en JAWS (todavía).
Stan Rogers,
2
@Stan Rogers: me importa mucho. Tuve la oportunidad de trabajar con un chico ciego en la universidad, que resultó ser estudiante y maestro, y sus habilidades me dejaron boquiabierto. Y me parece bastante triste que las grandes empresas e incluso las instituciones educativas presenten sitios web artísticos de mala calidad donde estos usuarios quedan excluidos.
haylem
2
+1 para accesibilidad. Trabajo para un sitio que está muy relacionado con la atención médica. (Afortunadamente, no el abismal de las noticias). Tanto beneficio como JS nos da, estoy muy triste de nuestras prioridades.
Katana314
46

Porque confiar en alguien para escribir una tira cómica divertida cada mañana y confiar en que alguien ejecute un código arbitrario de Turing en mi computadora son dos cosas muy diferentes.

Jörg W Mittag
fuente
3
+1 por la analogía divertida. Aunque el hecho de que sea Turing completo no tiene nada que ver con la peligrosidad de la ejecución.
haylem
44
@haylem: Ser Turing completo significa que es imposible demostrar mecánicamente la seguridad en el caso general. Diablos, incluso es imposible probar cosas básicas como que no funciona para siempre. Para un lenguaje más restrictivo, sería posible que el navegador del cliente pruebe que el script no está haciendo algo peligroso.
Jörg W Mittag
22
La integridad de Turing solo se trata de computabilidad. No dice nada acerca de si el lenguaje interpretado puede abrir archivos, hacer solicitudes HTTP, etc. El único peligro inherente en la integridad de Turing es la posibilidad de un bucle infinito.
dan04
@ dan04 O que intenta emular un procesador x86 con Windows que ejecuta una aplicación de escritorio que se proyecta en la ventana de su navegador, todo en Javascript. La integridad de Turing da miedo
sinni800
@ dan04 y ahora las botnets de minería de criptomonedas (que solo requieren recursos informáticos y la capacidad de enviar resultados).
user253751
16

No soy un desarrollador web, y solo tengo una comprensión moderada de cómo funciona Internet. Entonces esta es una respuesta de un usuario .

Mi experiencia me lleva a creer que muchos sitios simplemente están mal codificados, ya sea por pereza o por ignorancia: cuando veía una página web básicamente estática , como una página de Facebook, el uso de mi CPU aumentaría en un 15%, y drásticamente más con múltiples pestañas Eventualmente llegó al punto en que tendría que esperar una respuesta después de hacer clic en un botón o enlace y mi CPU se sobrecalentaría y se bloquearía.

En muchos de estos peores delincuentes (sitios), nada visible está cambiando y no está sucediendo nada interactivo. Solo podría suponer que el código del sitio constantemente realizaba actualizaciones excesivas, encuestas y bucles sin fin.

Esto me llevó a instalar NoScript para liberar el uso de mi CPU y evitar que la navegación se convierta en una tarea frustrante.

El otro complemento maravilloso que uso es FlashBlock .

Mark C
fuente
Facebook no proporciona páginas estáticas: está utilizando una técnica llamada sondeo largo para buscar nuevas notificaciones, mensajes de mensajería instantánea y elementos de suministro de noticias. Todas esas cosas requieren JavaScript y cierta cantidad de energía de la CPU.
2
@ MarkTrapp Sí, es por eso que dije "básicamente estático", aunque no se trata estrictamente de una página estática. HyperPhysics sería un ejemplo de un sitio con páginas estáticas. Me doy cuenta de que probablemente sea necesario hacer ese tipo de cosas; de lo contrario, los cuadros nunca desaparecerían y no vería notificaciones hasta que actualizara la página, pero : Parece que cada sitio se ayuda a sí mismo con más recursos de lo que debería, de manera similar a La situación en la que un profesor o profesor espera que usted ponga su trabajo primero.
Mark C
Si crees que Facebook es una página estática, entonces no deberías comentar sobre esta pregunta.
Dainius
@Dainius Parece que estás confundiendo la jerga con el inglés y no estás siguiendo la lógica aquí. ¿Qué está haciendo con todos esos ciclos de CPU aquí? Ese es el problema. Tal vez sea mejor ahora, pero muchos de estos sitios web se ayudan a cantidades obscenas de su tiempo de CPU.
Mark C
Mark, te llamas webdev y te preguntas, ¿qué tiene que ver la página estática frente a la dinámica con los ciclos de la CPU? o realmente crees que "ver una página web básicamente estática, como una página de Facebook" es cierto?
Dainius
10

Desactivo JS por razones de velocidad. TechCrunch sin JavaScript tarda unos segundos en cargarse con un caché cebado. Con JavaScript tarda casi 20 segundos, más si el caché no está preparado.

Muchos sitios se han hinchado con JavaScript, especialmente galerías de imágenes y sitios de comercio. Eliminar esto le brinda una mejor experiencia de navegación en la mayoría de los casos.

Josh K
fuente
8

Para mí todo se trata de seguridad. Utilizo noscript para permitir que ciertos sitios web ejecuten JavaScript, mientras que no se permite la mayoría.

Al final, nunca se sabe dónde está el peligro ( sitio web nobel infectado en techspot.com ). Muchos exploits de día cero (y otros) usan javascipt; cerrar esta avenida de ataque se siente como un paso en la dirección correcta.

kasterma
fuente
1
Necesitas corchetes alrededor de algo para que se active ese enlace. Eso me recuerda que el invierno pasado me enteré de que Yahoo! Los anuncios deportivos se infectaron con algún tipo de malware (o lo infectarían). El joven que administraba la red doméstica donde estábamos alojados incluyó en la lista negra numerosos sitios que tenían anuncios infecciosos.
Mark C
7

Mi razón principal es que suprime los anuncios más molestos. Prefiero no usar AdBlock Plus, ya que eso puede afectar los ingresos de los sitios que visito (y he usado uno o dos sitios donde los términos del servicio decían que no debía deshabilitar los anuncios). NoScript limita el potencial desagradable de los anuncios, y estoy dispuesto a vivir con el resto de ellos.

También existe la consideración de seguridad, y eso está relacionado en gran medida con los anuncios, ya que cualquier sitio que venda anuncios debe considerarse potencialmente hostil.

Además, no necesariamente sé que un sitio es dudoso antes de visitarlo. Algunas personas disfrutan enviando enlaces a sitios, y no son necesariamente honestos.

David Thornley
fuente
También los sitios de confianza pueden incluir Javascripts dañinos, a través de XSS o porque están pirateados. Me viene a la mente el ejemplo del sitio del premio Nobel.
Mnementh
4

Debido a que los navegadores solían tener implementaciones lentas de JavaScript y demasiados diseñadores web n00b simplemente lo usaban para cosas irrelevantes, como la transferencia de botones.

En una máquina rápida, con un navegador moderno, nadie en su sano juicio lo desactiva todo el tiempo. Lo que no quiere decir que no haya muchas personas muy "conscientes de la seguridad" y otras personas sin los fondos, el deseo o los conocimientos necesarios para ejecutar un navegador moderno en una computadora rápida ... Fue solo recientemente que IE6 dejó de funcionar. ¡El navegador más popular en internet!

Kevin Cantu
fuente
"y otros sin los fondos, el deseo o los conocimientos necesarios para ejecutar un navegador moderno en una computadora rápida". Puedo entender y estar de acuerdo con la parte de "fondos". Puedo entender con la parte del "deseo", aunque creo que generalmente sería más una cuestión de "necesidad" como una restricción impuesta que una negativa a tener una computadora decente. Pero realmente no entiendo la parte del "saber hacer". ¿Cómo puede ser inexperto hasta el punto de no comprar una computadora reciente? ¿O si lo hace, de usarlo mal hasta el punto de no instalar el navegador incluido y usar uno anterior? :)
haylem
2

Con Javascript activado, cualquier sitio web puede ejecutar código en mi computadora. Ni siquiera sé si el sitio web en particular ejecuta código y qué hace. Aún peor, alguien más puede insertar código sin mi conocimiento en un sitio web normalmente inofensivo (XSS). Recientemente, una conocida revista informática alemana hizo un artículo, cuando un joven de 16 años probó los sitios de banca en línea de los bancos más comunes en Alemania. Muchos de ellos, incluido el más grande, eran vulnerables a XSS. Y ni siquiera se da cuenta de que su sitio de banca en línea ejecuta un Javascript que cambia, por ejemplo, el objetivo y el monto de una transacción. Con Javascript deshabilitado, el ataque XSS en el contexto de un sitio confiable es inútil, no ejecuto el código malicioso.

Mnementh
fuente