summaryrefslogtreecommitdiff
path: root/talermerchantdemos/blog/articles/nl/javascript-trap.html
diff options
context:
space:
mode:
Diffstat (limited to 'talermerchantdemos/blog/articles/nl/javascript-trap.html')
-rw-r--r--talermerchantdemos/blog/articles/nl/javascript-trap.html118
1 files changed, 72 insertions, 46 deletions
diff --git a/talermerchantdemos/blog/articles/nl/javascript-trap.html b/talermerchantdemos/blog/articles/nl/javascript-trap.html
index 34d6db7..e7d1141 100644
--- a/talermerchantdemos/blog/articles/nl/javascript-trap.html
+++ b/talermerchantdemos/blog/articles/nl/javascript-trap.html
@@ -3,10 +3,10 @@
https://www.gnu.org/philosophy/po/javascript-trap.nl.po</a>'
--><!--#set var="ORIGINAL_FILE" value="/philosophy/javascript-trap.html"
--><!--#set var="DIFF_FILE" value="/philosophy/po/javascript-trap.nl-diff.html"
- --><!--#set var="OUTDATED_SINCE" value="2017-12-11" -->
+ --><!--#set var="OUTDATED_SINCE" value="2021-05-31" -->
<!--#include virtual="/server/header.nl.html" -->
-<!-- Parent-Version: 1.79 -->
+<!-- Parent-Version: 1.90 -->
<!-- This file is automatically generated by GNUnited Nations! -->
<title>De JavaScript-valstrik</title>
@@ -29,10 +29,11 @@ href="/software/librejs/free-your-javascript.html">diverse methoden</a> om
de licentie van JavaScript-programma's op een website aan te geven.</p>
</blockquote>
-<p>In de vrijesoftwaregemeenschap is het bekend dat niet-vrije programma's hun
-gebruikers misbruiken. Sommigen onder ons verdedigen onze vrijheid weigeren
-door alle private software op onze computers af te wijzen. Vele anderen
-beschouwen onvrijheid als een zeer slechte eigenschap van het programma.</p>
+<p>In de vrije software gemeenschap is het bekend dat <a
+href="/philosophy/free-software-even-more-important.html">niet-vrije
+programma's hun gebruikers misbruiken</a>. Sommigen onder ons verdedigen
+onze vrijheid door alle private software op onze computers af te
+wijzen. Vele anderen zien onvrijheid als een tekortkoming in het programma.</p>
<p>Veel gebruikers zijn zich ervan bewust dat deze kwestie ook van toepassing
is op add-ons die in de webbrowser ge&iuml;nstalleerd kunnen worden, omdat
@@ -48,20 +49,35 @@ niet-essenti&euml;le functies om te bladeren door webpagina's. Het was
acceptabel om deze te beschouwen als uitbreidingen van de HTML-opmaak, in
plaats van echte software; het was geen belangrijke kwestie.</p>
-<p>Veel websites gebruiken JavaScript nog steeds op die manier, maar andere
-websites gebruiken het voor veelomvattende programma's die grote taken
+<p>Sommige websites gebruiken JavaScript nog steeds op die manier, maar veel
+websites gebruiken het voor omvangrijke programma's die grote taken
uitvoeren. Neem bijvoorbeeld Google Docs; het probeert een
JavaScript-programma naar je machine te downloaden dat een halve megabyte
groot is, in een compacte vorm die we Obfuscript noemen, omdat het geen
commentaar bevat en nauwelijks spaties, en de namen van methoden zijn
&eacute;&eacute;n letter lang. De broncode van een programma is de vorm die
-het liefst gebruikt wordt om het te bewerken; de compacte code is niet de
+het liefst gebruikt wordt om te bewerken; de compacte code is niet de
broncode, en de echte broncode van dit programma is niet beschikbaar voor de
gebruiker.</p>
-<p>Veel van deze programma's zijn niet alleen niet-vrij, maar ook malware,
-omdat ze <a href="http://github.com/w3c/fingerprinting-guidance/issues/8">de
-gebruiker bespioneren</a>.</p>
+<p>Een <a href="/philosophy/free-software-even-more-important.html">onderdeel
+van vrije software</a> is dat gebruikers toegang hebben tot de broncode van
+een programma (zijn blauwdruk). De broncode van een programma is datgene wat
+programmeurs kunnen wijzigen&mdash;met inbegrip van spaties, commentaar met
+uitleg en zinnige naamgeving. Compacte code is een onbruikbare vervanger
+voor dit doel; de daadwerkelijke broncode is dan niet echt beschikbaar voor
+de gebruikers en dus niet te begrijpen; dat maakt een dergelijk programma
+niet-vrij.</p>
+
+<p>Bovendien zijn deze niet-vrije programma's ook vaak <em>malware</em> omdat
+ze <a href="http://github.com/w3c/fingerprinting-guidance/issues/8">de
+gebruiker bespioneren</a>. Nog erger, sommige sites gebruiken services die
+<a
+href="https://freedom-to-tinker.com/2017/11/15/no-boundaries-exfiltration-of-personal-data-by-session-replay-scripts/">alle
+handelingen van een gebruiker op die site</a> vastleggen. Dit soort services
+&ldquo;bewerken&rdquo; deze opnamen zodat gevoelige data niet mee komt, maar
+al zou dat goed werken, het hele idee is toch om websites van data te
+voorzien die het niet zou mogen hebben.</p>
<p>Browsers vertellen je normaal gesproken niet wanneer zij
JavaScript-programma's laden. Sommige browsers hebben de mogelijkheid om
@@ -106,22 +122,21 @@ brengt dat ons alleen ver genoeg om het probleem te ervaren.</p>
<p>Het is theoretisch mogelijk om te programmeren in HTML en CSS, maar in de
praktijk is deze mogelijkheid gelimiteerd en niet gemakkelijk; het zou een
ware prestatie zijn om iets te programmeren in deze talen. Dergelijke
-programma's zouden vrij moeten zijn, maar CSS is anno 2016 geen serieus
-probleem voor de vrijheid van gebruikers.</p>
+programma's zouden vrij moeten zijn, maar CSS is sinds 2019 geen serieus
+probleem meer voor de vrijheid van gebruikers.</p>
<p>Er heeft zich een sterke beweging ontwikkeld die oproept dat websites alleen
communiceren door middel van formaten en protocollen die vrij zijn (sommigen
zeggen &quot;open&quot;); wat betekent dat de documentatie gepubliceerd is
-en iedereen vrij is het te implementeren. Met de aanwezigheid van
-programma's in webpagina's is die eis noodzakelijk, maar niet
-voldoende. JavaScript zelf, als formaat, is vrij, en het gebruiken van
-JavaScript in een webpagina is niet noodzakelijkerwijs slecht. Echter, zoals
-we hierboven hebben gezien, hoeft het ook niet goed te zijn. Wanneer de
-website een programma naar de gebruiker verzendt, is het niet niet genoeg
-als het programma is geschreven in een gedocumenteerde en onbelemmerde taal;
-het programma moet zelf ook vrij zijn. &ldquo;Alleen vrije programma's die
-naar de gebruiker verzonden worden&rdquo; moet onderdeel worden van de eisen
-voor behoorlijk gedrag voor websites. </p>
+en iedereen vrij is het te implementeren. Met JavaScript is dat criterium
+niet meer voldoende. JavaScript zelf, als taal, is vrij, en het gebruik
+ervan is niet noodzakelijkerwijs slecht. Echter, zoals we hierboven hebben
+gezien, hoeft het ook niet goed te zijn&mdash;wanneer het programma zelf
+onvrij is. Wanneer de website een programma naar de gebruiker verzendt, is
+het niet niet genoeg dat het programma is geschreven in een vastgelegde en
+vrije taal; het programma moet zelf ook vrij zijn. &ldquo;Alleen vrije
+programma's die naar de gebruiker worden verzonden&rdquo; moet onderdeel
+worden van de eisen voor behoorlijk gedrag voor websites.</p>
<p>Het stilletjes laden en uitvoeren van niet-vrije programma's is
&eacute;&eacute;n van de problemen die zich voordoen bij
@@ -137,37 +152,47 @@ als ze zo hecht samenwerken dat ze mogelijkerwijs gedeeltes van een enkel
programma zijn. Dit artikel spreekt slechts over de kwestie van de software
aan de client-kant. We benoemen de serverkwestie apart.</p>
-<p>Hoe kunnen we, in praktisch opzicht, omgaan met het probleem van niet-vrije
-JavaScript-programma's in webpagina's? De eerste stap is vermijden het uit
-te voeren.</p>
+<p>Hoe kunnen we praktisch omgaan met het probleem van complexe niet-vrije
+JavaScript-programma's in webpagina's? De eerste stap is het niet uit te
+voeren.</p>
<p>Wat bedoelen we met &quot;niet-triviaal&quot;? Hier is geen vaste grens
voor, dus gaat het om het ontwerpen van een simpele eis die goede resultaten
geeft, in plaats van het juiste antwoord te vinden.</p>
<p>
-Ons voorlopige beleid is om een JavaScript-programma niet-triviaal te
-beschouwen als:</p>
+Ons huidige beleid is om een JavaScript-programma als niet-triviaal te
+beschouwen wanneer:</p>
<ul>
- <li>het een AJAX-verzoek doet of samen wordt geladen met scripts die een
-AJAX-verzoek doen,</li>
+ <li>het aan wordt geroepen als extern script (vanuit een andere pagina)</li>
- <li>het externe scripts dynamisch laadt of tezamen wordt geladen met scripts die
-dit doen,</li>
+ <li>het een array, groter dan 50 elementen gebruikt.</li>
- <li>het functies of methoden definieert en een extern script laadt (uit html) of
-als zo'n script wordt geladen,</li>
+ <li>het een functie of methode bevat die meer aanroept dan een primitive.</li>
+
+ <li>het een object aanmaakt met meer dan drie voorwaardelijke constructies of
+lussen.</li>
+
+ <li>code buiten de functies die iets anders dan primitieven aanroepen of
+functies verderop op de pagina.</li>
+
+ <li>code buiten de functies die in totaal meer dan drie voorwaardelijke
+constructies of lussen bevat.</li>
+
+ <li>wanneer het <b>eval</b> aanroept.</li>
+
+ <li>het een Ajax aanroep doet.</li>
+
+ <li>het vierkante haken gebruikt voor dynamische toegang tot properties van het
+type <b><em>object</em>[<em>property</em>]</b>.</li>
+
+ <li>het de DOM wijzigt.</li>
<li>het dynamische JavaScript-constructies gebruikt die moeilijk te analyseren
-zijn zonder het programma te interpreteren, of als het wordt geladen tezamen
-met scripts die dergelijke constructies gebruiken. Deze constructies zijn:
- <ul>
- <li>het gebruikmaken van de eval-functie,</li>
- <li>methoden aanroepen met de rechte-haken-notatie,</li>
- <li>het gebruiken van enige andere constructie dan een tekstreeks met bepaalde
-methoden (Obj.write, Obj.createElement, ...).</li>
- </ul>
- </li>
+zijn zonder het programma te interpreteren, of als het gelijk wordt geladen
+met scripts die dergelijke constructies gebruiken. Met name andere
+constructies dan string waarden bij bepaalde methoden (<b>Obj.write</b>,
+<b>Obj.createElement</b>, en anderen).</li>
</ul>
<p>Hoe kunnen we uitvinden of JavaScript-code vrij is? In een <a
@@ -279,7 +304,7 @@ website.</p>
There is more detail about copyright years in the GNU Maintainers
Information document, www.gnu.org/prep/maintain. -->
-<p>Copyright &copy; 2009-2013, 2016, 2017 Richard Stallman</p>
+<p>Copyright &copy; 2009-2013, 2016, 2017, 2018, 2019 Richard Stallman</p>
<p>Deze pagina is uitgebracht onder een <a rel="license"
href="http://creativecommons.org/licenses/by-nd/4.0/">Creative Commons
@@ -295,11 +320,12 @@ href="//savannah.gnu.org/projects/www-nl">www-nl</a></div>
<p class="unprintable"><!-- timestamp start -->
Bijgewerkt:
-$Date: 2018/03/31 02:00:46 $
+$Date: 2021/08/19 08:13:19 $
<!-- timestamp end -->
</p>
</div>
</div>
+<!-- for class="inner", starts in the banner include -->
</body>
</html>