Warum wird JavaScript deaktiviert?

59

Ich habe gestern eine Frage gestellt. Soll ich mich die Mühe machen, für deaktiviertes JavaScript zu entwickeln? . Ich denke der Consencus ist: Ja, ich sollte für JavaScript Disabled entwickeln. Jetzt möchte ich nur verstehen, warum Benutzer JS deaktivieren. Es scheint, dass viele Entwickler (ich denke, die Leute, die die Fragen beantwortet haben, sind Entwickler) JS deaktivieren. Warum ist das so. Warum deaktivieren Benutzer JS? Zur Sicherheit? Geschwindigkeit? oder was?

Jiew Meng
quelle
9
Ich glaube, Sie machen Annahmen, die auf anekdotischen Beweisen beruhen. Tatsache ist, dass 99,7% der Benutzer JS nicht ausschalten. Wenn sie JS wirklich deaktiviert hätten, hätten sie die Frage hier nicht beantwortet, da diese Site ohne JS nicht funktioniert.
Vartec
2
Ich kenne niemanden, der das tut.
kirk.burleson
6
@varted, @kirk: Ich kenne viele Leute, die das tun, oder zumindest teilweise. Viele sicherheitsbewusste Personen erlauben JavaScript nur auf Websites, die sie beispielsweise auf die Whitelist setzen. Und ich kenne eine Menge Leute, die JS auf ihrem Smartphone deaktivieren, da es oftmals den entladenen Akku wert ist.
Haylem
1
Ich habe Javascript aus Sicherheitsgründen in Chrome standardmäßig deaktiviert, obwohl ich es für Websites aktiviere, die es wert sind. Ich mag es wirklich nicht, dass so viele Websites ohne Javascript nicht funktionieren, es gibt immer mehr von ihnen, die überhaupt nicht funktionieren.
Czarek Tomczak
2
@HannesKarppila Sie können weiterhin domänenübergreifende Cookies und Web-Bug-Tracking-Bilder usw. verwenden. Das Tracking von Benutzern funktioniert einwandfrei, es sei denn, sie deaktivieren Javascript und Cookies. In diesem Fall ist das Internet ziemlich unbrauchbar.
NickG

Antworten:

80

Aus folgenden Gründen wird JavaScript in einer Browserumgebung deaktiviert:

  • Geschwindigkeit und Bandbreite
  • Benutzerfreundlichkeit und Zugänglichkeit
  • Plattformunterstützung
  • Sicherheit

Geschwindigkeit und Bandbreite

Viele Anwendungen verwenden viel zu viel JavaScript für sich ... Müssen Teile Ihrer Benutzeroberfläche ständig durch AJAX-Aufrufe aktualisiert werden? Vielleicht fühlt sich Ihre Benutzeroberfläche bei Verwendung einer Breitbandverbindung großartig und schnell an, aber wenn Sie auf langsamere Verbindungsgeschwindigkeiten zurückstufen müssen, wird eine optimierte Benutzeroberfläche bevorzugt. Und das Ausschalten von JavaScript ist eine gute Möglichkeit, um zu verhindern, dass dumme Web-Apps die Welt etwa alle 15 Sekunden ohne guten Grund aktualisieren. (Schon mal die Datenmenge angeschaut, die Facebook durchschickt? Es ist beängstigend. Es ist jedoch nicht nur ein JS-Problem, sondern auch ein Teil davon.)

Wir neigen auch dazu, immer mehr der Verarbeitung auf den Client zu verlagern, und wenn Sie minimalistische (oder nur veraltete) Hardware verwenden, ist dies schmerzhaft langsam.

Benutzerfreundlichkeit und Zugänglichkeit

Nicht alle Benutzeroberflächen sollten dynamisch dargestellt werden, und servergenerierte Inhalte können in vielen Fällen durchaus akzeptabel sein. Außerdem möchten manche Leute diese Art von Schnittstellen einfach nicht. Sie können nicht jedem gefallen, aber manchmal haben Sie die Chance und die Pflicht, alle Ihre Benutzer gleichermaßen zufriedenzustellen.

Schließlich haben einige Benutzer Behinderungen und du sollst sie niemals ignorieren !!!

Das schlimmste Szenario sind meiner Meinung nach Regierungswebsites, die versuchen, ihre Benutzeroberflächen zu "modernisieren", um der Öffentlichkeit freundlicher zu erscheinen, aber am Ende einen großen Teil ihrer Zielgruppe zurücklassen. Ebenso ist es schade, wenn ein Student nicht auf die Inhalte seines Kurses zugreifen kann: weil er / sie blind ist und sein Screenreader die Site nicht unterstützt oder weil die Site so umfangreich ist und moderne Ad-hoc-Plug-Ins erfordert, dass er / sie kann nicht auf dem vor 2 Jahren bei e-bay gekauften, generalüberholten Laptop installiert werden, oder weil er / sie in den Frühlingsferien in ein anderes Land zurückkehrt und die örtlichen Bandbreitenbeschränkungen nicht mit der Nutzlast des kompatibel sind Seite? ˅.

Nicht jeder lebt in einer perfekten Welt.

Plattformunterstützung

Dieser Punkt bezieht sich auf die beiden vorherigen und ist heutzutage tendenziell weniger relevant, da Browser JavaScript-Engines einbetten, die effizienter sind als früher, und dies wird immer besser.

Es gibt jedoch keine Garantie dafür, dass alle Benutzer das Privileg haben, moderne Browser zu verwenden (entweder aufgrund von Unternehmensbeschränkungen - die uns zwingen, antidiluvianische Browser ohne triftigen Grund zu unterstützen - oder aus anderen Gründen, die möglicherweise gültig sind oder nicht). Wie von "Matthieu M." erwähnt In den Kommentaren muss man bedenken, dass immer noch viele Leute minderwertige Hardware verwenden und dass nicht jeder das neueste und coolste Smartphone verwendet. Bis heute gibt es immer noch einen erheblichen Teil der Benutzer von Telefonen mit eingebetteten Browsern und eingeschränkter Unterstützung.

Aber wie gesagt, in diesem Bereich wird es besser. Aber Sie müssen sich trotzdem an die vorherigen Punkte zu Bandbreitenbeschränkungen erinnern, wenn Sie regelmäßig abrufen (oder Ihre Benutzer erhalten eine schöne Telefonrechnung).

Es ist alles sehr miteinander verbunden.

Sicherheit

Natürlich könnte man denken, dass mit JavaScript keine besonders gefährlichen Aktionen möglich sind, wenn man bedenkt, dass es in einer Browserumgebung ausgeführt wird. Dies ist jedoch völlig falsch.

Sie stellen fest, dass Sie beim Besuch von P.SE und SO automatisch angemeldet werden, wenn Sie in einem anderen Netzwerk angemeldet waren, oder? Da ist ein JS drin. Dieses Bit ist zwar immer noch harmlos, verwendet jedoch einige Konzepte, die von einigen böswilligen Sites ausgenutzt werden können. Es ist für eine Website durchaus möglich, JavaScript zu verwenden, um Informationen über bestimmte Dinge zu sammeln, die Sie während Ihrer Browsersitzung ausgeführt haben (oder ausgeführt haben) (oder über frühere, wenn Sie Ihre Sitzungsdaten nicht jedes Mal löschen, wenn Sie Ihren Browser schließen oder das Jetzt ausführen) häufig verwendete Inkognito / Private-Browsing-Modi (ausgiebig) und laden Sie sie dann einfach auf einen Server hoch.

Zu den jüngsten Sicherheitslücken (die zu dieser Zeit in den meisten Browsern auftraten) gehörte die Möglichkeit, Ihre gespeicherten Eingabeformulardaten zu erfassen (indem Sie Kombinationen auf einer böswilligen Seite ausprobieren und die vorgeschlagenen Texte für jede mögliche Anfangsbuchstabenkombination aufzeichnen, um Angreifern möglicherweise mitzuteilen, wer Sie sind) , wo Sie arbeiten und leben ) oder um Ihren Browserverlauf und Ihre Surfgewohnheiten zu extrahieren ( Ein sehr cleverer Hack, der so etwas wie das Einfügen von Links in das DOM der Seite, um sie der Farbe des Links anzupassen, und um festzustellen, ob sie besucht wurden . Sie müssen es nur tun Dies auf einer ausreichend großen Tabelle mit bekannten Domain-Namen. Und Ihr Browser wird schneller bei der Verarbeitung von JavaScript, so etwas wird schnell erledigt.)

Denken Sie auch daran, dass Sie JavaScript verwenden können, wenn das Sicherheitsmodell Ihres Browsers fehlerhaft ist oder wenn sich die von Ihnen besuchten Websites nicht ausreichend gegen XSS-Angriffe schützen.

JavaScript ist größtenteils harmlos ... wenn Sie es für vertrauenswürdige Websites verwenden. Google Mail. Facebook (vielleicht ... und nicht einmal ...). Google Reader. StackExchange.

Aber ja klar, so schlecht kann JavaScript doch nicht sein, oder? Und online gibt es sowieso beängstigendere Dinge zu befürchten. Man könnte meinen, man sei anonym, wenn man wirklich nicht so viel ist , wie das Panopticlick- Experiment der EFF zeigt . Dies geschieht teilweise auch mit JavaScript. Sie können sogar die Gründe für die Deaktivierung von JavaScript nachlesen , um Fingerabdrücke im Browser zu vermeiden .


Trotzdem kann es durchaus vorkommen, dass Sie sich nicht um die Unterstützung von JavaScript kümmern müssen. Wenn Sie jedoch eine öffentlich zugängliche Website anbieten, sollten Sie beide Arten von Kunden akzeptieren. Persönlich denke ich, dass viele moderne Web-Apps und Websites genauso gut mit dem früheren servergenerierten Inhaltsmodell ohne JavaScript auf der Clientseite funktionieren würden, und es wäre trotzdem großartig und möglicherweise viel weniger aufwendig.

Ihr Kilometerstand kann je nach Projekt variieren.

Haylem
quelle
5
Facebook zum Beispiel ist eine enorme Belastung für Ihre CPU. Ich bin auf einige Sites gestoßen, die so schlecht codiert waren (oder zu sein schienen), dass sie meinen Computer im Grunde einfrieren, indem sie die CPU vollständig laden (mit ein paar anderen geöffneten Registerkarten).
Mark C
3
@Mark C: Ich erwäge, bis zu 140 KB für das Klicken auf "Senden" zurückzusenden, wenn ich einen Kommentar schreibe, der eine leicht übertriebene Verwendung von Webformularen darstellt. Könnte in bestimmten Fällen zu der Zeit gewesen sein und das wurde seitdem behoben (hoffentlich). Ich habe eine kurze Zeit in einem Land gelebt, in dem die Zensur im Internet sehr restriktiv und die Verbindungsqualität nicht so gut ist.
Haylem
8
+1 für die Erwähnung der Zugänglichkeit. Die Hälfte des verdammten Webs ist für mich völlig unbrauchbar und ich bin weder ein gelegentlicher Computerbenutzer noch muss ich mich (noch) auf JAWS verlassen.
Stan Rogers
2
@ Stan Rogers: Es ist mir sehr wichtig. Ich hatte die Gelegenheit, mit einem blinden Mann an der Universität zu arbeiten, der sowohl Schüler als auch Lehrer war, und ich war überwältigt von seinen Fähigkeiten. Und ich finde es ziemlich traurig, dass große Unternehmen und sogar Bildungseinrichtungen jetzt beschissene künstlerische Websites entwickeln, auf denen diese Benutzer nicht berücksichtigt werden.
Haylem
2
+1 für die Zugänglichkeit. Ich arbeite für einen Standort, der sehr stark mit dem Gesundheitswesen zusammenhängt. (Zum Glück nicht die Abgrundtiefste in den Nachrichten) So viel Nutzen JS uns bringt, ich bin sehr traurig über unsere Prioritäten.
Katana314
46

Denn das Vertrauen, dass jemand jeden Morgen einen lustigen Comic schreibt, und das Vertrauen, dass jemand willkürlichen Turing-vollständigen Code auf meinem Computer ausführt, sind zwei sehr unterschiedliche Dinge.

Jörg W. Mittag
quelle
3
+1 für die lustige Analogie. Obwohl die Tatsache, dass es Turing complete ist, nichts mit der Gefährlichkeit der Ausführung zu tun hat.
Haylem
4
@haylem: Turing-complete zu sein bedeutet, dass es im allgemeinen Fall unmöglich ist, sich mechanisch als sicher zu erweisen. Heck, es ist sogar unmöglich, grundlegende Dinge zu beweisen, dass es nicht für immer läuft. Bei einer restriktiveren Sprache könnte der Client-Browser nachweisen, dass das Skript keine gefährlichen Aktionen ausführt.
Jörg W Mittag
22
Auf Vollständigkeit kommt es nur auf die Berechenbarkeit an. Es sagt nichts darüber aus, ob die interpretierte Sprache Dateien öffnen, HTTP-Anfragen stellen usw. darf. Die einzige inhärente Gefahr für die Vollständigkeit von Turing ist die Möglichkeit einer Endlosschleife.
dan04
@ dan04 Oder dass versucht wird, einen x86-Prozessor unter Windows zu emulieren, auf dem eine Desktop-Anwendung ausgeführt wird, die in Ihr Browserfenster projiziert wird - alles in Javascript. Turing Vollständigkeit ist beängstigend
sinni800
@ dan04 und jetzt Cryptocoin-Mining-Botnetze (für die nur Rechenressourcen und die Möglichkeit zum Zurücksenden von Ergebnissen erforderlich sind).
user253751
16

Ich bin kein Webentwickler und verstehe die Funktionsweise des Internets nur mäßig. Das ist also eine Antwort von einem Benutzer .

Aufgrund meiner Erfahrung bin ich der Meinung, dass viele Websites einfach schlecht codiert sind, sei es aus Faulheit oder Ignoranz: Wenn ich eine im Grunde statische Webseite wie eine Facebook-Seite ansehe, steigt meine CPU-Auslastung um etwa 15% und drastisch mehr mit mehreren Registerkarten. Irgendwann war es soweit, dass ich nach dem Klicken auf eine Schaltfläche oder einen Link auf eine Antwort warten musste und meine CPU überhitzte und abstürzte.

Bei vielen dieser schlimmsten Straftäter (Websites) ändert sich nichts Sichtbares und es geschieht nichts Interaktives. Ich konnte nur vermuten, dass der Code der Site ständig übermäßige Aktualisierungen, Umfragen und endlose Schleifen durchführte.

Das hat mich dazu bewogen, NoScript zu installieren , um meine CPU-Auslastung zu verringern und das Surfen nicht mehr zu einer frustrierenden Aufgabe zu machen.

Das andere wunderbare Add-On, das ich verwende, ist FlashBlock .

Mark C
quelle
Facebook stellt keine statischen Seiten zur Verfügung: Es wird eine Technik verwendet, die als langes Abrufen bezeichnet wird , um nach neuen Benachrichtigungen, Sofortnachrichten und Newsfeeds zu suchen. All diese Dinge erfordern JavaScript und etwas CPU-Leistung.
2
@MarkTrapp Ja, deshalb habe ich "im Grunde genommen statisch" gesagt, obwohl es sich streng genommen nicht um eine statische Seite handelt. HyperPhysics wäre ein Beispiel für eine Site mit statischen Seiten. Ich weiß , es ist wahrscheinlich eine Notwendigkeit , diese Art der Sache zu tun , sonst werden die Boxen nie verschwinden würde und Sie würden keine Benachrichtigungen sehen , bis Sie die Seite aktualisiert, aber : Es scheint , jede Seite selbst zu mehr Ihrer Ressourcen hilft , als es sollte, ähnlich wie die Situation, in der ein Professor oder Lehrer erwartet, dass Sie ihre Arbeit an die erste Stelle setzen.
Mark C
Wenn Sie der Meinung sind, dass Facebook eine statische Seite ist, sollten Sie diese Frage nicht kommentieren.
Dainius
@Dainius Sie scheinen Jargon mit Englisch zu verwechseln und folgen hier keiner Logik. Was macht es mit all diesen CPU-Zyklen hier? Das ist das Problem. Vielleicht ist es jetzt besser, aber viele dieser Websites helfen sich selbst dabei, die CPU-Zeit zu verkürzen.
Mark C
Mark, du nennst dich webdev und fragst, was haben statische und dynamische Seiten mit CPU-Zyklen zu tun? oder Sie denken wirklich, dass "eine im Grunde statische Webseite wie eine Facebook-Seite anzeigen" wahr ist?
Dainius
10

Ich deaktiviere JS aus Geschwindigkeitsgründen. Das Laden von TechCrunch ohne JavaScript mit einem vorbereiteten Cache dauert einige Sekunden. Mit JavaScript dauert es fast 20 Sekunden, mehr, wenn der Cache nicht vorbereitet ist.

Viele Websites sind mit JavaScript überfüllt, insbesondere Bildergalerien und Commerce-Websites. Wenn Sie dies entfernen, können Sie in den meisten Fällen besser surfen.

Josh K
quelle
8

Für mich dreht sich alles um Sicherheit. Ich verwende Noscript, um bestimmten Websites das Ausführen von Javascript zu ermöglichen, während ich die meisten nicht zulasse.

Am Ende weiß man wirklich nie, wo die Gefahr liegt ( Nobel-Website infiziert auf techspot.com ). Viele Zero-Day-Exploits (und andere) verwenden Javascipt. Das Schließen dieser einen Angriffsstraße fühlt sich wie ein Schritt in die richtige Richtung an.

Kasterma
quelle
1
Sie brauchen Klammern um einen Link. Das erinnert mich daran, dass ich erst letzten Winter erfahren habe, dass der Yahoo! Sportwerbung wurde mit einer Art Malware infiziert (oder würde Sie infizieren). Der junge Mann, der das Heimnetzwerk verwaltet, in dem wir untergebracht waren, hat zahlreiche Websites mit ansteckenden Werbeanzeigen auf die schwarze Liste gesetzt.
Mark C
7

Mein Hauptgrund ist, dass es die nervigsten Anzeigen unterdrückt. Ich würde AdBlock Plus lieber nicht verwenden, da dies die Einnahmen für die von mir besuchten Websites beeinträchtigen kann (und ich habe eine oder zwei Websites verwendet, auf denen laut Nutzungsbedingungen keine Deaktivierung von Anzeigen vorgesehen war). NoScript schränkt die potenzielle Abscheulichkeit von Anzeigen ein und ich bin bereit, mit den anderen zu leben.

Es gibt auch Sicherheitsaspekte, die im Wesentlichen mit Anzeigen zusammenhängen, da jede Website, die Anzeigen verkauft, als potenziell feindlich eingestuft werden muss.

Außerdem weiß ich nicht unbedingt, dass eine Website zweifelhaft ist, bevor ich sie besuche. Einige Leute versenden gerne Links zu Websites und sind nicht unbedingt ehrlich.

David Thornley
quelle
Vertrauenswürdige Sites können auch schädliche Javascripts enthalten - über XSS oder weil sie gehackt werden. Das Beispiel der Nobelpreis-Seite fällt mir ein.
Mnementh
4

Weil Browser früher langsame JavaScript-Implementierungen hatten und zu viele n00b-Webdesigner sie nur für irrelevante Dinge wie das Überrollen von Schaltflächen verwendeten.

Auf einer schnellen Maschine mit einem modernen Browser deaktiviert niemand, der bei Verstand ist, diese Funktion ständig. Was nicht heißt, dass es nicht viele sehr "sicherheitsbewusste" Menschen und andere gibt, die kein Geld, keinen Wunsch oder kein Know-how haben, um einen modernen Browser auf einem schnellen Computer zu betreiben ... Erst vor kurzem hörte der IE6 auf zu existieren Der beliebteste Browser im Internet!

Kevin Cantu
quelle
"und andere ohne das Geld, den Wunsch oder das Know-how, einen modernen Browser auf einem schnellen Computer auszuführen". Ich kann den Teil "Mittel" verstehen und ihm zustimmen. Ich kann das mit dem "Wunsch" -Teil verstehen, obwohl ich denke, dass es normalerweise eher eine Frage der "Notwendigkeit" als einer auferlegten Einschränkung ist, dass man sich weigert, einen anständigen Computer zu haben. Aber ich verstehe den Teil "Know-how" nicht wirklich. Wie können Sie unerfahren sein, ohne einen neueren Computer zu kaufen? Oder wenn Sie es doch missbrauchen, um den mitgelieferten Browser nicht mehr zu installieren und stattdessen einen älteren zu verwenden? :)
Haylem
2

Wenn Javascript aktiviert ist, kann jede Website Code auf meinem Computer ausführen. Ich weiß nicht einmal, ob die jeweilige Website Code ausführt und was sie tut. Schlimmer noch, jemand anderes kann Code ohne mein Wissen in eine normalerweise harmlose Website (XSS) einfügen. Kürzlich hat ein bekanntes deutsches Computermagazin keinen Artikel verfasst, in dem ein 16-Jähriger die Online-Banking-Sites der gängigsten Banken in Deutschland ausprobiert hat. Viele von ihnen - einschließlich der größten - waren für XSS anfällig. Und Sie bemerken nicht einmal, dass Ihre Online-Banking-Seite etwas Javascript ausführt, das zum Beispiel das Ziel und den Betrag für eine Transaktion ändert. Mit deaktiviertem Javascript ist der XSS-Angriff im Kontext einer vertrauenswürdigen Site nutzlos, ich führe den Schadcode nicht aus.

Mnementh
quelle