Door Anoniem: Het probleem met veiligheid is dat je bruikbaarheid inlevert, NoScript gooit je website plat, als CSP degelijk blijkt te werken straks, kan alles optimaal blijven functioneren met veilige instellingen...
Door Anoniem: Door Anoniem: Met NoScript ben je ook al tegen cross-site scripting beschermd :)
Alleen werkt dan niks meer.
Als je je websites goed ontwerpt doe je het als volgt:
1. Maak een website die met kale HTML gewoon werkt.
2. Gebruik CSS om de vormgeving op te pimpen.
3. Gebruik JavaScript+DOM om dynamiek toe te voegen.
Als iets niet ondersteund wordt val je dan automatisch terug naar iets wat misschien wat minder gelikt is maar wel gewoon werkt.
Graceful degradation heet dat. Ik ben het begrip voor het eerst tegengekomen op de website van het World Wide Web Consortium, lang geleden, toen ik webontwikkelaar was en me begon te verdiepen in hoe je CSS en DOM hoort toe te passen. Dat was in de tijd dat de incompatibiliteiten tussen browsers genoeg begonnen af te nemen om het zonder al te veel ellende toe te kunnen passen (ik ben begonen toen IE3-ondersteuning nog een vereiste was). Het is geen nieuw inzicht dus.
En wat zie je webdevelopers (of de hulpmiddelen die ze gebruiken) massaal doen? Hyperlinks maken die JavaScript nodig hebben om naar een andere pagina te gaan, terwijl dat gewoon een basismogelijkheid van HTML is. Formulieren maken die alleen via JavaScript gesubmit kunnen worden, terwijl dat gewoon een basismogelijkheid van HTML is (en validaties moet je sowieso op de server herhalen). Menu's helemaal vanuit JavaScript opbouwen, terwijl je ook die gewoon in HTML kan coderen en met CSS en JavaScript+DOM kan opfraaien. Redirects vanuit JavaScript doen terwijl dat via een HTTP-response of een meta-tag geregeld kan worden. Een toenemend aantal websites is zelfs zo stom om de "U heeft JavaScript nodig bij ons"-foutpagina zo op te roepen dat de pagina waar je op zat uit de browserhistorie verdwijnt, waardoor je na activeren van JavaScript niet makkelijk de gevraagde pagina terug kan halen. Gebruik van Ajax doet er natuurlijk ook een schepje bovenop, terwijl dat vaak wordt toegepast op manieren die vooral de cool-factor verhogen maar feitelijk geen functionaliteit (in inhoudelijke zin) toevoegen.
Een goed ontwikkelde website zou niet onderuit gehaald mogen worden door NoScript. Helaas is het concept van
graceful degradation voor veel webontwikkelaars een ver-van-mijn-bed-show, of domweg te abstract om begrepen te worden. Ik ben overigens niet tegen het toevoegen van elementen die van JavaScript afhankelijk zijn, maar heb wel kritiek op het ervan afhankelijk maken van dingen die prima zonder kunnen. En let wel, dit beperkt je niet als webontwikkelaar. Je kan alle fancy toeters en bellen toepassen die je maar wilt, en toch een website neerzetten die bruikbaar is als een bezoeker JavaScript uit heeft staan; het sluit elkaar niet uit.
Vanuit dit inzicht is mijn eerste gedachte nooit dat NoScript een website kapot maakt, maar dat de website slecht gebouwd is.