Mag een plugin zomaar webpagina’s herschrijven?

broncode-source-codeEen lezer vroeg me:

Is een plugin legaal die extra functionaliteit toevoegt aan een webpagina? Bijvoorbeeld zoals Adblock Plus dat advertenties blokkeert of de Skype plugin die telefoonnummers omzet naar hyperlinks die Skype activeren?

Het is toegestaan plugins aan te bieden die webpagina’s gedeeltelijk aanpassen, zolang maar niet de indruk ontstaat dat de pluginbouwer iets met de pagina-eigenaar te maken heeft. Dat kan bijvoorbeeld gebeuren als de plugin een widget toevoegt die niet duidelijk is dat dit een derdepartij-functie is.

Ook moet de gebruiker expliciet vooraf kunnen zien welke functionaliteit er toegevoegd zal worden of welke aanpassingen worden gemaakt, dit in verband met de cookiewet. In het algemeen moet je met gedownloade software vooraf weten wat deze gaat doen.

Als de plugin betaalfunctionaliteit gratis toegankelijk maakt dan is het problematisch. Denk aan een plugin die betaalfunctionaliteit kloont of eentje die betaalde pagina’s toont zonder betalen. Zo’n plugin faciliteert dan toegang tot een betaaldienst zonder te betalen, of inbreuk op auteursrechten door afgeschermde content opnieuw openbaar te maken. Beiden zijn niet toegestaan.

Het mag dus. Daar staat tegenover dat een website-eigenaar de aanwezigheid van de plugin mag detecteren en toegang tot zijn site mag weigeren tot je die uitzet. Het is zijn server dus hij beslist wie daarop webpagina’s mag opvragen. En het is toegestaan om dan te zeggen, ik wil plugin X niet zien/ik wil gewhitelist in die plugin. Afgezien van advertentieblokkers of betaalmuuromzeilers kan ik me niet voorstellen waarom je dat zou willen, maar goed.

Wat is (naast advertentieblokken of betaalmuuromzeilen) de handigste herschrijfplugin die jullie hebben?

Arnoud

31 reacties

  1. Ik heb vele ‘userscripts’ geschreven. Ik ben van mening dat wanneer de HTML in mijn browser staat, ik het naar mijn believen aan mag passen – voor mij zelf natuurlijk.

    De meeste scriptjes voegen kleine handigheidjes toe. In veel gevallen is het vooral de hobby om het voor elkaar te krijgen. Maar vaak komt het voort uit irritatie dat een simpele functionaliteit mist of te ver verstopt is. Voor twee webbased spelletjes is het wat uitgebreider geworden. Maar ik heb het nooit gemaakt voor ‘oneerlijke voordelen’.

    Waarom meet je zulke scripts langs de cookie meetlat en waarom gewone software niet? Die download en installeer je ook.

      1. Ook als je aangeeft dat je automatische updates wil en de update geen andere informatie opslaat/opvraagt als de voorganger? Dat lijkt mij vrij overbodig, laat echte bug fixes maar gewoon automatisch en stil komen, dan heb ik in ieder geval niet de halve familie aan de linn wat ze ermee moeten!

        Overigens, waarom zou een plugin niet de pagina mogen veranderen zonder dat duidelijk is dat de aanpassingen niet van de aanbieder komen? Zoals Alex zegt, als de HTML op je pc staat en het voor eigen gebruik is heb je toch helemaal niets meer met de server te maken. Ik kan me voorstellen dat het wat anders is als je gemanipuleerde data naar de server stuurt, maar als alles puur client side gebeurd?

        Als je dat overigens slim doet, dan komt men er nooit achter dat je een pluging gebruikt. Wellicht dat ze een script bouwen die checkt of je de DOM hebt gemanipuleerd, maar die moet je dan een kopie van de originele ongemanipuleerde DOM voeren.

        1. Als je zelf kiest voor automatische stille updates, dan is dat prima. Maar de default moet zijn dat toestemming wordt verkregen voordat de update doorgevoerd wordt, en je moet (kunnen) weten wat die update gaat doen.

          Het punt met veranderen is dat de gebruiker niet moet denken dat dit de originele pagina is. Stel er gaat wat mis, dan gaat hij daar de website-eigenaar op aankijken. En natuurlijk, vaak heb je zelf de plugin geïnstalleerd maar toch. Ik heb wel eens dat een pagina heel raar doet, en dat blijkt dan AdBlock plus te zijn geweest maar daar kom je niet snel achter. Dus het kan zijn dat ik dan denk, stomme site ik ga naar de concurrent. Dat lijkt me toch niet wenselijk.

          1. Op zich is het eigenlijk juist wel heel zinvol om naar een concurrent te gaan als een aanbieder alleen maar betaald wil worden door toevoeging van vervelende advertenties waar niemand op zit te wachten. Kan er geen wet bedacht worden waarbij het verplicht wordt om informatie aan te bieden zonder advertenties, eventueel naast een gratis abonnement mèt advertenties? Lijkt me zinvoller en maatschappelijk verantwoorder dan de cookiewet…

  2. Een browser, inclusief plug-ins, is een “user agent”, en wordt in de communicatie met een website geacht namens de gebruiker te handelen; dus niet namens de website. De gebruiker is er tegenover de website voor verantwoordelijk dat dit ook echt zo is, en kan dit realiseren door verstandige keuzes te maken m.b.t. welke browser en plugins zijn geïnstalleerd.

    Naast de website-houder en de gebruiker zijn er in de praktijk nog derde partijen: de makers van browsers en browser-plugins. De primaire verantwoordelijkheid van deze partijen is om helder en transparant te zijn naar de gebruiker over wat de software precies doet; de gebruiker is vervolgens verantwoordelijk voor de gevolgen van het gebruik van de software. Zoals ik het zie heeft een plugin-maker dus geen verantwoordelijkheid naar website-houders, maar ik besef dat dit een soort “guns don’t kill people”-argument is.

    Een browser heeft twee belangrijke interfaces: naar de gebruiker (de presentatie van een website op het scherm) en naar het internet (de communicatie met webservers). De interface naar de gebruiker is een interne interface, en de gebruiker hoeft dus aan niemand verantwoording af te leggen over wat daar gebeurt. Als de gebruiker een website op een niet-standaard manier gepresenteerd wil krijgen, dan is dat helemaal zijn eigen zaak. De gebruiker is wel verantwoordelijk voor wat er op de internet-interface gebeurt; daarbij moet het geen verschil maken of dit wel of niet door een plugin wordt gedaan (zolang de gebruiker maar goed is geïnformeerd over wat de plugin doet).

    Ik zie werkelijk niet waarom je zou willen afwijken van dit principe. In tegenstelling tot vuurwapens (“guns don’t kill people”) is het bij internet-communicatie zo dat de website-houder zijn eigen belangen uitstekend aan de server-kant kan verdedigen. Dit geldt wellicht niet voor bepaalde wensen die incompatibel zijn met het internet (of met de werkelijkheid in het algemeen), zoals de wens om bepaalde gegevens wel aan sommige mensen te overhandigen maar niet aan anderen. Ik ben geneigd om dat soort wensen als onredelijk te beschouwen.

  3. Wat is (naast advertentieblokken of betaalmuuromzeilen) de handigste herschrijfplugin die jullie hebben?

    Een (niet-zo-technisch) familielid van mij heeft een tijdje noodgedwongen in Ubuntu moeten werken, omdat haar windows-systeem FUBAR was. Het grootste probleem daarbij was dat RTL gemist niet werkte. Als ik het goed herinner probeerde het Silverlight te gebruiken, wat niet werkte in Ubuntu.

    Ik heb dit (op basis van tips op het internet) opgelost door met een browser plug-in de browser identifier string te veranderen naar die van een bepaald Apple-apparaat. Als reactie daarop stuurde RTL gemist een andere versie van de site, die wel platform-onafhankelijk werkte, dus ook op Ubuntu.

    RTL gemist had natuurlijk best iedereen die platform-onafhankelijke versie kunnen aanbieden: dan had het probleem nooit bestaan. Ik weet niet wat voor redenen ze gehad hebben om dit niet te doen; waarschijnlijk iets verderfelijks zoals DRM.

      1. Als ik daar de ontwikkelaar was geweest, dan had ik de volgende gedachtegang gevolgd: maakt windows-versie van de site 1. Oh, dit gaat nooit werken in Mac maakt Mac-versie van de site 2. Aargh, ik moet nu twee versies van mijn software onderhouden 3. Hee, de Mac-versie werkt ook in windows checkt dat de Mac-versie minstens zo goed is als de windows-versie dropt de windows-versie en geeft iedereen de Mac-versie

        Maar, toegegeven, een voldoende incompetente ontwikkelaar zou niet de bovenstaande gang van zaken hoeven te volgen.

        1. Of:

          1. Ik moet nu twee versies van mijn software onderhouden
          2. Opdrachtgever, als ik ze samenvoeg kost dat €xxx aan ontwikkelingskosten.
          3. Te veel? Dan niet.

          Of:

          1. Ik moet nu twee versies van mijn software onderhouden
          2. Mooi, dubbele inkomsten!
          1. Of waarschijnlijker: Ik heb een heel goedkoop windows media server platform en een heel duur Adobe flash media server dan wel Apple quicktime server platform voor streaming dus ik stuur zoveel mogelijk bezoekers naar mijn goedkope windows media serverplatform.

  4. Op een webpagina zal meestal auteursrechten rusten, zowel op de HTML-code als op de tekst en grafische delen. Als een plug-in, script of persoon daar aanpassingen aan doet is het resultaat een afgeleid werk. Het maken van een afgeleid werk zonder toestemming van de rechthebbende is een auteursrechtenschending.

    Al doet het feit dat de makers van advertentieblokkers niet worden aangeklaagd zoals de makers van p2p software me vermoeden dat ik hier iets over het hoofd zie.

  5. Ik heb wel eens een plugin gehad die webpagina’s met meerdere pagina’s (met een ‘next’ knop dus) omtovert tot 1 lange webpagina die automatisch wordt bijgeladen als je naar beneden scrollt.

    Er is ook fb-purity, maar dat kun je half onder de adblockers rekenen.

    En daarnaast had ik ooit een plugin met een hele (community) library aan scripts voor bekende webpagina’s, die echt alles er af slopen behalve de echte content.

    Eigenlijjk allemaal plugins dus, die de ‘fluff’ van pagina’s halen en alleen nog maar de content tonen waar ik in geinteresseerd ben.

  6. Advertenties kunnen niet alleen irritant zijn, maar tegenwoordig is het ook een veelgebruikte manier voor criminelen om malware te verspreiden die meestal niet door een virusscanner herkend wordt. Daarom adviseer ik vrienden en kennissen om, naast een virusscanner, ook een advertentieblokker te gebruiken.

    Gegeven de richtlijnen die banken tegenwoordig opstellen voor veilig bankieren:

    Zorg voor een goede beveiliging van de apparatuur die u gebruikt voor uw bankzaken
    zou je kunnen argumenteren dat het gebruik van advertentieblokkers een verplichting is om een claim bij een bank neer te kunnen leggen in geval van fraude. Geen idee of dat juridisch stand houd, maar ik voel me in ieder geval veiliger met advertentieblokkers zoals Adblock Plus, Disconnect en Ghostery.

  7. Als gebruiker ben ik wel weg van Safari Reader, welke op mobiele apparaten met ios een webpagina omzet naar enkel tekst, plaatjes en links. Dat maakt het een stuk makkelijker om te lezen.

    Maar als ontwikkelaar heb ik een schurfthekel aan datzelfde Safari Reader, omdat het alleen maar werkt als er een bepaalde set aan voorwaarden is voldaan. De algoritmes zijn niet openbaar dus je kan niet opzoeken waarom Reader niet activeert in die ene pagina. Je mag dus gokken waarom ie het niet doet. En soms doet ie het wel maar dan laat ie hele alineas gewoon helemaal weg.

    Analyses op het internet suggereren dat Reader blijkbaar werkt op basis van een soort van score over de hele pagina, en het vergt bijzonder weinig om je score te torpederen. Zo heb ik gemerkt dat als je twee ‘p’ elementen in je pagina hebt met precies dezelfde class of zonder class, dat ie dan al snel wegblijft. Dat slaat toch nergens op?

  8. Wat is (naast advertentieblokken of betaalmuuromzeilen) de handigste herschrijfplugin die jullie hebben?

    Enhanced Steam is soms handig om prijsvergelijkingen te maken op Steam. Soms zie je dat de ontwikkelaar van een spel de prijs 1-op-1 omzet in euros (dus $9.99 = EUR 9.99), terwijl je via bijvoorbeeld de Humble store een steam-key voor hetzelfde spel vanuit Nederland wel in dollars kunt betalen.

  9. Mogelijk dat ik iets over het hoofd zie, maar ik kan uit art. 11.7a Tw niet halen dat de gebruiker expliciet vooraf moet kunnen zien welke functionaliteit er toegevoegd zal worden of welke aanpassingen worden gemaakt. art. 11.7a lid 1 sub a gaat over persoonsgegevens, wat betreft sub b (toestemming) : je kiest er zelf om de plugin te installeren, ook in geval dat je niet precies vooraf kan lezen wat hij doet. De definitie van toestemming onder art. 11.1 sub g lijkt dat niet anders te maken. Of mis ik een wetsartikel, ik ben geen expert op dit punt.

    1. Artikel 11.7a begint met “een ieder die door middel van elektronische communicatienetwerken … gegevens wenst op te slaan in de randapparatuur van de gebruiker”. Dat staat dus los van persoonsgegevens: wil je iets opslaan op randapparatuur via internet oid, dan geldt dit artikel.

      Dan komen er twee eisen, a en b: a) duidelijke en volledige informatie verstrekken: wat is het plan van deze opslag, wat ga je doen en hoezo? De verwijzing naar de Wbp slaat op de standaard voor “duidelijk en volledig”. Je moet het net zo uitgebreid doen als in een privacyverklaring, zeg maar. Maar dit geldt óók voor informatie over opslag die niet aan de privacy raakt. b) toestemming verkrijgen: de cookiepopup, installatiepopup, wizard met vraag oid.

      Normaal gaat het goed, want inderdaad ik klik zelf de plugin aan en dan pas gaat hij installeren. En de meeste installers zeggen ook nog eens expliciet “Start installation” nadat je wat configuratiedingen hebt ingevuld. Maar je kúnt software ook zonder popup of klik laten installeren. Vraag maar aan mijn buurman, die van tijd tot tijd toolbars heeft waar ie niet om heeft gevraagd.

      En ik ben van mening dat een update apárt valt onder 11.7a Tw. Het feit dat ik een stuk software installeer, impliceert niet dat ik ook alle updates daarop wil. Zeker niet als ik niet eens weet dát er een update gedownload wordt.

      En nee, een alvast aangevinkt vakje is niet genoeg. Ja, ik kijk naar jou, Java.

      1. Bedankt voor de uitgebreide uitleg. De MvT geeft inderdaad aan dat de informatie steeds duidelijk en volledig moet zijn, ook als het andere gegevens dan persoonsgegevens betreft. Er mag wel eens gehandhaafd worden als het gaat om apps, die vragen vaak alle mogelijke rechten op je telefoon zonder dat je een idee wat ze er mee doen.

      2. Maar je kúnt software ook zonder popup of klik laten installeren. Vraag maar aan mijn buurman, die van tijd tot tijd toolbars heeft waar ie niet om heeft gevraagd.

        Dat klinkt als een serieus probleem dat echt opgelost moet worden, zeker als die buurman ook zoiets als internetbankieren doet. Ik weet niet of dit PEBCAK is of niet, maar ik zou die buurman dringend adviseren om hier verandering aan te brengen, eventueel met behulp van anderen.

          1. Software installeert zichzelf niet, software wordt geïnstalleerd door software die al op het apparaat actief is(*).

            Het is dus belangrijk om geen software op een apparaat te hebben die zonder toestemming van de eigenaar nieuwe software installeert: dit is de enige manier waarop de eigenaar de baas blijft over zijn/haar apparaat. Eventueel kan die toestemming indirect zijn, als de gebruiker toestemming geeft voor security updates en andere bug fixes die van een bepaalde leverancier komen, maar zo’n toestemming moet gebaseerd zijn op het vertrouwen dat zulke updates geen verandering in functionaliteit meebrengen.

            Je kunt de schuld wel leggen bij de software die geïnstalleerd wordt, maar dat leidt niet tot een oplossing: het internet is vol met malware die aan geen enkele norm voldoet, en dat zal niet snel veranderen. De oplossing ligt echt bij de software die de installatie start: die moet zo zijn ontworpen dat de beslissing tot installeren bij een goed geïnformeerde eigenaar komt te liggen.

            Ik kan me voorstellen dat een ongevraagd “Ja/Nee” pop-upje bij veel mensen niet voldoende is. Ik ben geen expert op het gebied van user interfaces; ik hoop dat anderen hier iets moois voor kunnen bedenken.

            (*) Zeldzame uitzondering: software kan ook geïnstalleerd worden door fysieke onderdelen aan een apparaat toe te voegen, zoals een BIOS of een harde schijf. Dit is nodig om het hele proces te bootstrappen.

            1. Het probleem met wat je zegt, is dat grote bekende software voor de massa’s -webbrowsers- kennelijk nog steeds toelaat dat er software binnenkomt zonder aparte toestemming daarvoor te vragen. Dit naast de installatiegrappen waarbij je gemakkelijk een vinkje voor aanvullende software (ik kijk naar jullie, Java & Ask.com toolbar) over het hoofd ziet.

              Graag had ik software die werkte zoals jij schetst. Dat zou ook een hele mooie invulling zijn van de cookiewet.

            2. Het model moet naar mijn inzien zijn dat software altijd in een sandbox draait, en als het toegang nodig heeft tot bepaalde gegevens van je computer, dat je daarover door het OS (of de installer component van dat OS) een signaal krijgt. Standaard melding: applicatie will adresboek raadplegen, geeft wat details (voor het adres van de huidige gebruiker, of een lijst van namen) en een paar opties: “Nooit toestaan:”, “Nu niet toestaan”, “Eenmalig toestaan”, “Permanent toestaan”, “Toestaan met gefingeerde gegevens”. Dit moet niet te omzeilen zijn, en het onderscheid tussen echte en gefingeerde gegevens moet niet triviaal te bepalen zijn. Bij updates vervallen de toestemmingen weer… want een ander stukje software.

  10. Niet echt een plugin, maar ik gebruik wel regelmatig bookmarklets (Javascriptjes in een bookmark) om webpagina’s aan te passen, bijvoorbeeld: – Het opslaan van een website-wachtwoord in de browser toelaten wanneer dit is uitgeschakeld – Alle html-controls inschakelen wanneer opties zijn grijsgemaakt – Alle gedetecteerde afbeeldingen op een pagina onder elkaar weergeven om deze beter te kunnen opslaan – Een formulier omzetten van POST naar GET, om vervolgens de URL met specifieke parameters te kunnen opslaan (werkt niet overal) – Van een artikel enkel de bodytekst en de grote afbeelding weergeven, zonder navigatie-elementen, reclame etc.

    En zo zijn er nog wel meer. Voor sommige zijn er ook scripts of plugins te vinden, maar bookmarklets werken zonder installatie en nemen dus minder plaats in beslag.

  11. Ik gebruik woordenboeken die rode lijntjes tekenen onder fout gespelde woorden in tekstvakken en een Flashblocker die elk Adobe Flashprogramma verhindert automatisch te starten. Dat laatste niet zozeer om advertenties te blokken, maar om hinderlijk gedrag van advertenties te stoppen.

    Daarnaast gebruik ik Leetkey om bijvoorbeeld ROT13 op geselecteerde tekst te kunnen toepassen en allerlei webdevelopmentplugins, maar die werken pas op verzoek.

Geef een reactie

Handige HTML: <a href=""> voor hyperlinks, <blockquote> om te citeren, <UL>/<OL> voor lijsten, en <em> en <strong> voor italics en vet.