diff options
Diffstat (limited to 'talermerchantdemos/blog/articles/nl/javascript-trap.html')
-rw-r--r-- | talermerchantdemos/blog/articles/nl/javascript-trap.html | 305 |
1 files changed, 305 insertions, 0 deletions
diff --git a/talermerchantdemos/blog/articles/nl/javascript-trap.html b/talermerchantdemos/blog/articles/nl/javascript-trap.html new file mode 100644 index 0000000..34d6db7 --- /dev/null +++ b/talermerchantdemos/blog/articles/nl/javascript-trap.html @@ -0,0 +1,305 @@ +<!--#set var="PO_FILE" + value='<a href="/philosophy/po/javascript-trap.nl.po"> + 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" --> + +<!--#include virtual="/server/header.nl.html" --> +<!-- Parent-Version: 1.79 --> + +<!-- This file is automatically generated by GNUnited Nations! --> +<title>De JavaScript-valstrik</title> + +<!--#include virtual="/philosophy/po/javascript-trap.translist" --> +<!--#include virtual="/server/banner.nl.html" --> +<!--#include virtual="/server/outdated.nl.html" --> +<h2>De JavaScript-valstrik</h2> + +<p>door <a href="http://www.stallman.org/">Richard Stallman</a></p> + +<p><strong>Waarschijnlijk voer je elke dag niet-vrije programma's uit op je +computer zonder dat je het door hebt—via je webbrowser.</strong></p> + +<!-- any links that used to point to the appendices should point to + free-your-javascript.html instead. --> +<blockquote> +<p>Websitebeheerders: er zijn <a +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>Veel gebruikers zijn zich ervan bewust dat deze kwestie ook van toepassing +is op add-ons die in de webbrowser geïnstalleerd kunnen worden, omdat +ook deze vrij of niet-vrij kunnen zijn. Maar browsers gebruiken andere +niet-vrije programma's zonder jou daar eerst toestemming voor te vragen of +zelfs over te informeren—programma's die zich in webpagina's +bevinden. Deze programma's worden meestal geschreven in JavaScript, maar +andere programmeertalen worden ook gebruikt.</p> + +<p>JavaScript (officieel ECMAScript genoemd, maar weinigen gebruiken die naam) +werd eerst gebruikt voor kleine details in webpagina's, zoals schattige maar +niet-essentië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 +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 +éé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 +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>Browsers vertellen je normaal gesproken niet wanneer zij +JavaScript-programma's laden. Sommige browsers hebben de mogelijkheid om +JavaScript geheel uit te schakelen, maar zelfs als je je bewust bent van +deze kwestie, zou het grote moeite kosten om de niet-triviale, niet-vrije +programma's te identificeren en deze te blokkeren. Echter, zelfs in de +vrije-softwaregemeenschap zijn de meeste gebruikers zich niet bewust van +deze kwestie; het zwijgen van de browser verhult het.</p> + +<p>Het is mogelijk om JavaScript-programma's als vrije software uit te brengen, +door het verspreiden van de broncode onder een vrije-software licentie. Als +het programma zelf-bevattend is—zijn functioneren en doel zijn +onafhankelijk van de pagina waarin het geleverd werd—is dat prima; je +kunt het programma kopiëren naar je eigen computer, het wijzigen, en +dat bestand openen met een browser om het uit te voeren. Maar dat is een +ongebruikelijk geval.</p> + +<p>In het gebruikelijke geval zijn JavaScript-programma's bedoeld om te werken +met een bepaalde pagina of website, en de pagina of website hangt voor zijn +functioneren van deze programma's af. Dan speelt een ander probleem: zelfs +als de broncode van het programma beschikbaar is, bieden browsers je geen +manier aan om jouw aangepaste versie uit te voeren in plaats van de +originele versie bij het bezoeken van die pagina of website. Het effect +lijkt op tivoisatie (waarbij je de software niet kunt vervangen), hoewel het +in principe niet zo moeilijk is op te lossen.</p> + +<p>JavaScript is niet de enige programmeertaal die websites gebruiken om +programma's naar de gebruiker te sturen. Flash ondersteunt programmeren door +middel van een uitgebreide variant van JavaScript; als we ooit een compleet +vrije Flash-speler hebben, moeten we omgaan met de kwestie van niet-vrije +Flash-programma's. Silverlight heeft een vergelijkbaar probleem, maar dan +erger, omdat Microsoft het gebruikt als een platform voor niet-vrije +codecs. Een vrije vervanging van Silverlight is niet genoeg voor de vrije +wereld totdat het normaal gesproken geleverd wordt met vrije vervangingen +voor codecs.</p> + +<p>Java-applets worden ook in de browser uitgevoerd en hebben vergelijkbare +problemen. Over het algemeen zal elke vorm van applet dit soort problemen +hebben. Wanneer we een vrije uitvoeringsomgeving hebben voor een applet +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> + +<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 "open"); 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. “Alleen vrije programma's die +naar de gebruiker verzonden worden” moet onderdeel worden van de eisen +voor behoorlijk gedrag voor websites. </p> + +<p>Het stilletjes laden en uitvoeren van niet-vrije programma's is +één van de problemen die zich voordoen bij +"web-applicaties". De term "webapplicatie" is bedacht om +het fundamentele verschil, tussen software die geleverd wordt aan de +gebruikers en software die uitgevoerd wordt op een server, te +verzwijgen. Het kan verwijzen naar een gespecialiseerd clientprogramma dat +wordt uitgevoerd in een browser; het kan verwijzen naar gespecialiseerde +serversoftware; het kan verwijzen naar een gespecialiseerd clientprogramma +dat hand in hand samenwerkt met gespecialiseerde serversoftware. De client- +en server-kant brengen verschillende ethische kwesties aan het licht, zelfs +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>Wat bedoelen we met "niet-triviaal"? 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> + +<ul> + <li>het een AJAX-verzoek doet of samen wordt geladen met scripts die een +AJAX-verzoek doen,</li> + + <li>het externe scripts dynamisch laadt of tezamen wordt geladen met scripts die +dit doen,</li> + + <li>het functies of methoden definieert en een extern script laadt (uit html) of +als zo'n script wordt geladen,</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> +</ul> + +<p>Hoe kunnen we uitvinden of JavaScript-code vrij is? In een <a +href="/licenses/javascript-labels.html">apart artikel</a> stellen we een +conventie voor waarmee niet-triviale JavaScript-programma's in een webpagina +de URL kunnen aangeven waar de broncode staat, alsmede zijn licentie, door +middel van gestilleerd commentaar.</p> + +<p>Tenslotte moeten we vrije browsers wijzigen zodat zij niet-triviale, +niet-vrije JavaScript detecteren en blokkeren. Het programma <a +href="/software/librejs/">LibreJS</a> detecteert niet-vrije, niet-triviale +JavaScript in de pagina's die je bezoekt, en blokkeert deze. LibreJS wordt +meegeleverd met IceCat, en is beschikbaar als add-on voor Firefox.</p> + +<p>Gebruikers van browsers hebben ook een gebruikersvriendelijke methode nodig +om JavaScript-code te gebruiken <em>in plaats van</em> de JavaScript in een +bepaalde pagina. (De gespecificeerde code kan een volledige vervanging zijn, +of een gewijzigde versie van het vrije JavaScript-programma in die pagina.) +Greasemonkey komt hier dicht in de buurt, maar niet helemaal, want het +garandeert niet dat de aangepaste JavaScript-code op de pagina wordt +gebruikt voordat het programma begint met uitvoeren. Het gebruiken van een +lokale proxy werkt, maar is momenteel te moeilijk om een echte oplossing te +zijn. We moeten een oplossing creëren die betrouwbaar en gemakkelijk +is, alsmede websites om gewijzigde programma's te delen. Het GNU-project +raadt graag websites aan die toegewijd zijn aan vrije wijzigingen.</p> + +<p>Deze functies zullen het mogelijk maken dat een JavaScript-programma dat +wordt meegeleverd met een webpagina in een praktisch opzicht vrij +is. JavaScript zal geen bijzonder obstakel zijn voor onze +vrijheid—niet meer dan C en Java nu zijn. We zullen in staat zijn om +de niet-vrije, niet-triviale JavaScript-programma's te verwerpen en zelfs te +vervangen, net zoals we niet-vrije programma's verwerpen en vervangen die +ons op de reguliere manier ter installatie aangeboden worden.</p> + +<p>In de tussentijd is er één moment waarop het acceptabel is om +een niet-vrij JavaScript-programma uit te voeren: om een klacht naar de +websitebeheerders te sturen, waarin je aangeeft dat ze de JavaScript-code op +de website zouden moeten bevrijden of verwijderen. Aarzel niet om JavaScript +tijdelijk aan te zetten om dat te doen—maar vergeet niet om het na +afloop weer uit te zetten.</p> + +<!-- any links that used to point to the appendices should point to + free-your-javascript.html instead. --> +<blockquote> +<p>Websitebeheerders: er zijn <a +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><strong>Dankbetuiging:</strong>Ik dank <a +href="/people/people.html#mattlee">Matt Lee</a> en <a +href="http://ejohn.org">John Resig</a> voor hun hulp bij het bepalen van de +voorgestelde criteria, en aan David Parunakian, die mij geholpen heeft me +bewust te maken van het probleem.</p> + +<div class="translators-notes"> + +<!--TRANSLATORS: Use space (SPC) as msgstr if you don't have notes.--> + </div> +</div> + +<!-- for id="content", starts in the include above --> +<!--#include virtual="/server/footer.nl.html" --> +<div id="footer"> +<div class="unprintable"> + +<p>Gelieve algemene vragen over FSF & GNU te sturen naar <a +href="mailto:gnu@gnu.org"><gnu@gnu.org></a>. Er zijn ook nog <a +href="/contact/">andere manieren om in contact te komen</a> met de +FSF. Foute links en andere correcties graag sturen aan <a +href="mailto:webmasters@gnu.org"><webmasters@gnu.org></a>.</p> + +<p> +<!-- TRANSLATORS: Ignore the original text in this paragraph, + replace it with the translation of these two: + + We work hard and do our best to provide accurate, good quality + translations. However, we are not exempt from imperfection. + Please send your comments and general suggestions in this regard + to <a href="mailto:web-translators@gnu.org"> + + <web-translators@gnu.org></a>.</p> + + <p>For information on coordinating and submitting translations of + our web pages, see <a + href="/server/standards/README.translations.html">Translations + README</a>. --> +We doen ons best om goede vertalingen te maken maar staan altijd open voor +verbeteringen. Suggesties, op- en aanmerkingen sturen aan: <a +href="mailto:web-translators@gnu.org"><web-translators@gnu.org></a>.</p> +<p>Zie <a href="/server/standards/README.translations.html"> Translations +README</a> voor informatie over het onderhoud van vertalingen op deze +website.</p> +</div> + +<!-- Regarding copyright, in general, standalone pages (as opposed to + files generated as part of manuals) on the GNU web server should + be under CC BY-ND 4.0. Please do NOT change or remove this + without talking with the webmasters or licensing team first. + Please make sure the copyright date is consistent with the + document. For web pages, it is ok to list just the latest year the + document was modified, or published. + + If you wish to list earlier years, that is ok too. + Either "2001, 2002, 2003" or "2001-2003" are ok for specifying + years, as long as each year in the range is in fact a copyrightable + year, i.e., a year in which the document was published (including + being publicly visible on the web or in a revision control system). + + There is more detail about copyright years in the GNU Maintainers + Information document, www.gnu.org/prep/maintain. --> +<p>Copyright © 2009-2013, 2016, 2017 Richard Stallman</p> + +<p>Deze pagina is uitgebracht onder een <a rel="license" +href="http://creativecommons.org/licenses/by-nd/4.0/">Creative Commons +Naamsvermelding-GeenAfgeleideWerken 4.0 Internationaal licentie</a>.</p> + +<!--#include virtual="/server/bottom-notes.nl.html" --> +<div class="translators-credits"> + +<!--TRANSLATORS: Use space (SPC) as msgstr if you don't want credits.--> +<strong>Vertaling:</strong> <a +href="//savannah.gnu.org/projects/www-nl">www-nl</a></div> + +<p class="unprintable"><!-- timestamp start --> +Bijgewerkt: + +$Date: 2018/03/31 02:00:46 $ + +<!-- timestamp end --> +</p> +</div> +</div> +</body> +</html> |