javascript

Web-Development immer komplexer

Web-Developer jagen gerne den neuesten Frameworks hinterher, übersehen dabei aber oft und gerne, dass sie konkrete Lösungen großer Konzerne für ultra-komplexe Aufgabenbereiche - und eben nicht für Websites - sind. So entsteht die immer höhere, aber in den meisten Fällen nicht notwendige Komplexität.

Von WordPress betrogen

Ich stelle fest, dass fast jeder Artikel zum Thema WordPress, PHP und Javascript die 5 Phasen der Trauer beinhaltet. In der korrekten Reihenfolge, nur etwas gekürzt.

Ein Tag ohne JavaScript.

sonniesedge hat JavaScript in ihrem Browser deaktiviert und so einen Tag lang die üblichen Websites besucht. Der erste Eindruck:
So how was it? Well, with just a few minutes of sans-javascript life under my belt, my first impression was “Holy shit, things are fast without javascript”. There’s no ads. There’s no video loading at random times. There’s no sudden interrupts by “DO YOU WANT TO FUCKING SUBSCRIBE?” modals. If this were the only manifestation of turning off javascript, I’d do this for the rest of time. However, a lot of things don’t work. Navigation is the most common failure mode. Hamburger menus fail to internally link to a nav section (come on, that’s an easy one kids). Forms die when javascript is taken away (point the form to an endpoint that accepts GET/POST queries ffs). Above the fold images fail to load (you do know they’re streaming by default, yes?).
Zwölf Seitenaufrufe und zugehörige Kommentare später:
I maintain that it’s perfectly possible to use the web without javascript, especially on those sites that are considerate to the diversity of devices and users out there. And if I want to browse the web without javascript, well fuck, that’s my choice as a user. This is the web, not the Javascript App Store, and we should be making sure that things work on even the most basic device. I think I’m going to be turning off javascript more, just on principle.
Der erste Eindruck ist also bestimmend und findet sich in der Conclusio ähnlich wider. JavaScript kann übrigens in jedem Browser, sogar auf mobilen Endgeräten, ganz leicht gänzlich deaktiviert werden. Wer die Ausführung von Skripten selektiver handhaben möchte, dem seien NoScript oder uBlock im erweiterten Modus empfohlen. Das ist zwar kein "Deaktivieren von JavaScript", kommt aber schon sehr nahe dran heran.

NoScript, die Nuklearoption für sicheres Websurfen.

NoScript ist ein mächtiges Werkzeug, mit dem JavaScript komplett oder nur teilweise deaktiviert werden kann und eine "Security Suite", die vor allerlei Betrugsversuchen und sonstigen Bosheiten schützen kann. Ich kann NoScript jedem User empfehlen, der zumindest ein wenig Ahnung vom Nutzen von JavaScript hat und versteht, warum man es unter welchen Umständen und Bedingungen brauchen kann. Wer nach einer One-fits-all-Lösung sucht, kann (sollte aber nicht) die hier angeratenen Konfigurationseinstellungen übernehmen. Das Deaktivieren von JavaScript führt aber zu zwei nicht unerheblichen Problemen. Einerseits verwendet praktisch jede moderne Website JavaScript, weshalb ein User jede einzelne, von ihm besuchte Website manuell freischalten müsste, was ein nahezu nicht zumutbarer Aufwand ist. Andererseits ist selektiv deaktiviertes JavaScript ein passives Trackingmerkmal; Tracker erkennen, welche Websites zur Ausführung von JavaScript freigegeben sind - und bilden aus dieser Information ein eindeutig identifizierbares Merkmal. (Selbst das Tor Project argumentiert genauso.) Ob die Vorteile die Nachteile aufwiegen, kann ich nicht beurteilen. Ich persönlich habe NoScript in Verwendung und aktualisiere meine Konfiguration häufig. Soweit es Sinn macht, veröffentliche ich diese Aktualisierungen ohnedies auf genau dieser Seite. Download NoScript.

Allgemein

Da die meisten Websites JavaScript benötigen, empfehle ich hier das Erlauben von JavaScript, das unter der eigenen Domain der Website gehostet ist. noscript-1

Positivliste

In diesem Einstellungsfeld markieren wir alle aufgelisteten Websites und klicken auf "Ausgewählte Websites entfernen". Keine Sorge, ausgegraute, also für den Betrieb von Firefox notwendige Adressen werden ohnehin nicht gelöscht. Hier werden zukünftig berechtigte oder temporär berechtigte URLs aufscheinen.

Eingebettete Objekte

Unter "Eingebettete Objekte" habe ich Java, Flash, Silverlight verboten, da ich es ohnhin nie benötigt habe. Welche Plugins es sind, die mit "andere Plugins" gemeint sind, weiß ich nicht, das Setzen des Häkchens ist mir aber noch nie negativ aufgefallen. noscript-2

Aussehen

In diesem Menüpunkt geht es um Bedienelemente, nicht um Funktionalität. Die Einstellungen hier sind also mehr oder weniger nach freiem Ermessen zu setzen. Ich komme mit folgenden Einstellungen gut zurecht. noscript-3

Benachrichtigungen

Auch hier geht es mehr ums Belieben, ich habe dennoch den Punkt "Informationsleiste anzeigen, wenn Skripte blockiert werden" deaktiviert.

Erweitert

Hier habe ich den KonfigurationsGAU, den Giorgio Maone den Usern in seinem Plugin zumutet, vereinfacht dargestellt. Die genannten Optionen sind aktiv, alle anderen nicht.
Nicht vertrauenswürdig
Klick-Verfolgung über das PING-Attribut für Links verbieten XSLT verbieten Versuchen, JavaScript-Links in normale Links umzuwandeln
Vertrauenswürdig
NOSCRIPT-Element, das einem blockierten SCRIPT folgt, anzeigen
Cross-Site Scripting (XSS)
Anfragen bei Verdacht auf Cross-Site Scripting bereinigen Cross-Site-POST-Anfragen in datenlose GET-Anfragen umwandeln
HTTPS
Verhalten: leer Cookies: leer Berechtigungen: niemals
ABE
ABE (Application Boundaries Enforcer) aktivieren WAN-IP
ClearClick
nicht vertrauenswürdigen vertrauenswürdigen Seiten
Ein Klick auf "Okay" speichert die Einstellungen. Wir sind mit NoScript fertig.

Warum NoScript JavaScript im TorBrowser nicht blockiert.

Die Standardkonfiguration des NoScript-Plugins im TorBrowser lässt die Ausführung von JavaScript zu. Warum dieses Sicherheitsrisiko eingegangen wird, ist in den FAQ zum TorBrowser erklärt:
On the one hand, we should leave JavaScript enabled by default so websites work the way users expect. On the other hand, we should disable JavaScript by default to better protect against browser vulnerabilities […] But there's a third issue: websites can easily determine whether you have allowed JavaScript for them, and if you disable JavaScript by default but then allow a few websites to run scripts (the way most people use NoScript), then your choice of whitelisted websites acts as a sort of cookie that makes you recognizable (and distinguishable), thus harming your anonymity.