Niets is erger dan dat iemand je afbeeldingen of bandbreedte steelt. Hoe onwaarschijnlijk dit ook lijkt, feit is dat dit geregeld voorkomt, omdat alles op internet met elkaar in verbinding staat. Dit kan je geld kosten en is zelfs illegaal wanneer een individu naar stockfoto’s linkt waarvoor je een gebruikslicentie hebt moeten aanschaffen. In dit artikel leggen we uit wat hotlinking is, waarom het schadelijk is, en hoe je hotlinking kan voorkomen op je WordPress-website.

Wat is hotlinking?

Het idee achter hotlinking is heel simpel. Je vindt een willekeurige afbeelding ergens op het internet en gebruikt de URL van de afbeelding rechtstreeks op je site. Deze afbeelding wordt vervolgens vrolijk op je website weergegeven, maar wordt daarbij geladen vanuit de oorspronkelijke locatie. Dit is erg fijn voor de hotlinker, maar het is in feite diefstal aangezien het de resources van de gelinkte server verbruikt. Het is alsof we in onze auto stappen en wegrijden op benzine die we van de auto van onze buurman hebben overgeheveld.

Waarom hotlinking schadelijk is

Hieronder staan een aantal dingen waarop je moet letten als het gaat om hotlinking:

1. Hotlinking kost de eigenaar van de oorspronkelijke website geld

Het lijkt misschien onschuldig als iemand vanuit zijn website naar jouw afbeeldingen linkt, maar het kan je zomaar een boel geld kosten. Het verhaal van The Oatmeal is een typisch voorbeeld van hoe zoiets uit de hand kan lopen. De Huffington Post hotlinkte naar een cartoon die uit meerdere losse afbeeldingen bestond. Omdat The Huffington Post een populaire website is met veel verkeer, zorgde dit voor een hoog bedrag aan extra kosten voor The Oatmeal, doordat de afbeeldingen ineens geleverd moesten worden aan duizenden mensen. Wat volgde was typisch Oatmeal. De maker van The Oatmeal, Matthew Inman, verving alle gehotlinkte bestanden met het volgende:

Voorbeeld hotlinking
Voorbeeld hotlinking

Hij zorgde er ook voor dat hij de laatste afbeelding verving voor een tekening van een achterwerk en een jongeheer. Oops! Zoals je kan zien, kunnen de kosten snel oplopen, helemaal als het hotlinken gebeurt door een website met veel verkeer. Kun je erop vertrouwen dat alle schrijvers en bloggers goed kunnen omgaan met afbeeldingen? Waarschijnlijk niet. En daarom bestaat er hotlink-beveiliging.

Gerelateerd artikel: Contentscraping – negeren of terugvechten?

2. Hotlinking is in de meeste gevallen illegaal

Hotlinking is in veel gevallen illegaal. Waarom? Omdat aan veel van de foto’s die je op internet ziet licentiebeperkingen zijn gekoppeld. Hier volgen een paar veelvoorkomende afbeeldingsbeperkingen voor licenties van populaire stockfotosites:

  • Commercieel gebruik is onder geen enkele omstandigheid toegestaan.”
  • “Publicatie toegestaan op een website of blog waarvan je eigenaar bent (alleen in artikelen of nieuws en uitsluitend voor illustratieve doeleinden).”

De twee bovenstaande beperkingen kunnen gemakkelijk worden overtreden wanneer iemand naar je afbeeldingen linkt om deze op de eigen site te gebruiken. Ze hebben zeer waarschijnlijk geen toestemming hiervoor, omdat ze niet voor de licentie betaald hebben. Dit gaat hand in hand met het niet correct linken op hun site, maar heeft ook te maken met correcte attributie aan de oorspronkelijke maker.

3. Aftappen van serverbronnen

Hotlinking kan een enorme negatieve impact hebben op de bronnen van de doelserver. Stel je voor dat je op een shared WordPress-host zit en dat Huffington Post opeens naar je afbeeldingen linkt. Je kan zomaar van een paar honderd aanvragen per uur naar honderdduizend gaan. Dit kan zelfs resulteren in het opschorten van het account bij je host. Dit is niet alleen een reden om een hoogwaardige managed WordPress hosting te gebruiken, maar ook om hotlink-bescherming in te schakelen die dit scenario kan voorkomen.

4. Hotlinking is voor luie mensen

Is luiheid de reden waarom mensen hotlinken? In de meeste gevallen klopt het dat mensen niet opzettelijk naar je afbeeldingen linken en zijn ze zich er niet bewust van dat hotlinken een probleem is. Doorgaans zijn ze druk met schrijven en copy-pasten ze URL’s en bestanden om tijd te besparen. In sommige gevallen weten ze niet eens hoe je op een correctie manier naar een afbeelding linkt. Dit is echter geen excuus. Wanneer je content schrijft op het web, dan is belangrijk dat je weet hoe je op een correcte manier linkt naar andermans afbeeldingen, in combinatie met de juiste attributies en bronvermelding.

Heeft het blokkeren van hotlinking negatieve impact op je SEO?

Het blokkeren van hotlinking heeft geen negatieve impact op je SEO, mits alles correct is ingesteld. Sommige crawlers van Google, Bing, Yahoo, etc. hebben toegang nodig tot je afbeeldingen om deze te indexeren en correct weer te geven. Als je bijvoorbeeld een afbeeldingen op Google Image Search zoekt, wordt de thumbnail geladen vanuit de afbeeldingscache van Google. Echter, de originele versie (als je erop klikt) wordt geladen vanuit je server.

google image search
Hotlinking in Google Image Search

En het is wel degelijk belangrijk dat je afbeeldingen opgenomen worden door Google Image Search. Volgens WordStream is het verkeer dat je krijgt vanuit Google Image Search een ‘easy win’ en kan voor verkeer – en daarmee leads en conversies – zorgen, dat je anders niet had gekregen.

Hoe hotlinking te voorkomen

Er zijn een aantal eenvoudige methodes om je afbeeldingen tegen hotlinking te beschermen. Laten we de mogelijkheden eens bekijken.

Een CDN met Hotlink-beveiliging gebruiken

De meesten van jullie dienen een wereldwijd publiek en gebruiken een CDN-provider om de levering van assets te versnellen. CDN-aanbieders zoals KeyCDN en Cloudflare hebben geweldige gratis ingebouwde hotlink-bescherming die je kan inschakelen. Deze methode kunnen we van harte aanbevelen, omdat ze gebruik maken van nauwkeurig afgestelde regels om bots en andere verwijzers, die eigenlijk niet mogen worden geblokkeerd, toe te laten. Een ander bijkomend voordeel van het gebruik van een CDN is dat je geen wijzigingen aan hoeft te brengen in je WordPress-installatie.

Als je KeyCDN gebruikt, kan je op Zonereferrers klikken om regels toe te voegen. Crawlers kunnen dan nog steeds je afbeeldingen openen en indexeren.

KeyCDN hotlink-bescherming
KeyCDN hotlink-bescherming

Ze bieden zelfs de mogelijkheid om met één muisklik lege verwijzers per zone toe te staan.

keycdn empty referrers toestaan
KeyCDN empty referrers toestaan

Hiermee schakel je hotlinkbeveiliging in voor de items op je CDN, maar niet voor die op de oorspronkelijke server. Mocht je je zorgen maken dat iemand rechtstreeks naar afbeeldingen op je server hotlinkt, dan kan je ook hotlink-beveiliging inschakelen op de oorspronkelijke server (zie de Apache– en NGINX-regels verderop) Dit is echter niet een waarschijnlijk scenario, omdat iemand hiervoor handmatig de URL van de CDN moet verwijderen. Toch kan het gebeuren.

Als je gebruik maakt van Cloudflare, is het niet moeilijk om hotlink-bescherming in te schakelen. Dit kan je doen door in je account naar Scrape Shield te gaan. Hotlink-bescherming heeft geen invloed op crawlers, maar het zorgt er wel voor dat je afbeeldingen niet meer te zien zijn op sites als Google Images, Pinterest, etc. Omdat Cloudlare een volledig proxy-service is, hoef je je geen zorgen te maken over het inschakelen van hotlink-beveiliging op de oorspronkelijke server.

cloudflare hotlink-beveiliging
Cloudflare hotlink-beveiliging

Gebruik je Amazon S3? Dan kan je hotlink-bescherming inschakelen met de bucket policies, die je onder ‘Permissions’ vindt in je bucket.

amazon s3 hotlink-bescherming
Amazon S3 hotlink-bescherming

Voeg hiervoor de volgende code toe:

{
  "Version": "2008-10-17",
  "Id": "preventHotLinking",
  "Statement": [
    {
      "Sid": "1",
      "Effect": "Allow",
      "Principal": {
        "AWS": "*"
      },
      "Action": "s3:GetObject",
      "Resource": "arn:aws:s3:::my-brand-new-bucket/*",
      "Condition": {
        "StringLike": {
          "aws:Referer": [
            "http://yourwebsitename.com/*",
            "http://www.yourwebsitename.com/*"
            "https://google.com/*"
            "https://bing.com/*"
            "https://yahoo.com/*"
          ]
        }
      }
    }
  ]
}

Hotlink-bescherming op Apache inschakelen

Als je WordPress-website op Apache draait, dan hoef je alleen het .htaccess-bestand in de hoofdmap van je website te openen (of aan te maken) en het volgende toe te voegen:

RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?yourdomain.com [NC]
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?google.com [NC]
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?bing.com [NC]
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?yahoo.com [NC]
RewriteRule \.(jpg|jpeg|png|gif|svg)$ http://dropbox.com/hotlink-placeholder.jpg [NC,R,L]

De tweede regel staat blanco verwijzingen toe. We raden doorgaans aan om die toe te staan, omdat de persoonlijke firewall en antivirussoftware van sommige gebruikers deze paginaverwijzingen verwijdert. Als je blanco verwijzingen niet toestaat, kan het zijn dat deze groep per ongeluk geen afbeeldingen meer ziet.

De derde regel definieert de toegestane verwijzende URL. Dit is de website die rechtstreeks naar de afbeelding mag linken en zou je website moeten zijn (vergeet niet om de hierboven vermelde jouwdomein.com te vervangen voor je eigen domein!). De vierde, vijfde en zesde regel voegen zoekmachines toe aan de toegestane lijst, omdat je geen crawlers zoals de Google bot of de Bing bot wilt blokkeren. Doe je dit niet, kan bestaat de kans dat je afbeeldingen niet door Google Image Search worden geïndexeerd en dus niet worden weergegeven.

De zevende regel definieert de afbeelding waarvan je wil dat bezoekers deze zien in plaats van de hotlink-beveiligde afbeelding. Dit is niet verplicht, maar hiermee geef je wel een vriendelijke waarschuwing. Als je meerdere sites wilt toestaan, kan je deze rij kopiëren en de verwijzende URL vervangen. Als je complexere regels wilt genereren, bekijk dan deze htaccess hotlink-beschermingsgenerator.

Als je bovenstaande regels wil combineren met een CDN, dan doe je er waarschijnlijk goed aan om je CDN-subdomein te whitelisten.

Hotlink-bescherming inschakelen op NGINX

Als je met NGINX werkt, hoef je alleen maar je config-bestand te openen en het volgende toe te voegen:

location ~ .(gif|png|jpeg|jpg|svg)$ {
     valid_referers none blocked ~.google. ~.bing. ~.yahoo. yourdomain.com *.yourdomain.com;
     if ($invalid_referer) {
        return   403;
    }
}

Als je een klant bent bij Kinsta en je gebruikt geen CDN, kunnen wij dit voor je toevoegen. Om dit te doen open je een ticket bij het supportteam vanuit het MyKinsta-dashboard. Als je de bovenstaande regels combineert met een CDN, doe je er waarschijnlijk goed aan om je CDN-subdomein ook te whitelisten.

WordPress-plugins

Er zijn een aantal WordPress-plugins die bescherming bieden tegen hotlinking, maar veel van de plugins die zich uitsluitend op hotlinking richten worden niet goed onderhouden of hebben slechte recensies. We raden deze dan ook niet aan. Wat we wel aanraden is om eens te kijken naar de plugin All in One WP Security and Firewall. Dit is een uitstekende allround beveiligingsplugin met een ingebouwde functie om hotlinking tegen te gaan. In het algemeen is het echter beter om hotlink-bescherming in te schakelen op het niveau van de server of CDN.

All In One WP Security & Firewall
All In One WP Security & Firewall

All In One WP Security & Firewall heeft momenteel meer dan 500.000 actieve installaties en een indrukwekkende score van 5 uit 5 sterren. Je kan deze downloaden vanuit de WordPress-bibliotheek of door te zoeken vanuit je WordPress-dashboard onder ‘Add New’ in het plugins tabblad.

Opmerking: als je een klant bij Kinsta bent, is deze plugin niet toegestaan, omdat we veel van de beveiligingsmaatregelen die deze plugin aanbiedt al op serverniveau toepassen. Hierdoor zorgen we ervoor dat de bescherming geen invloed heeft op de prestaties van je WordPress-site en dat deze efficiënt samenwerkt met onze infrastructuur. Als je hotlink-bescherming wil inschakelen, kan je dit doen door contact op te nemen met de support.

Schakel de rechtermuisknop in WordPress uit

Een andere optie om hotlinking in WordPress te voorkomen is door het klikken met de rechtermuisknop uit te schakelen. Dit is geenszins een waterdichte oplossing, maar het kan een goede manier zijn om de doorsnee gebruiker te beletten om jouw afbeeldingen te stelen of te kopiëren naar andere applicaties, waarbij gelinkt wordt naar jouw brondomein.
Dit kan je doen met de gratis lichtgewicht plugin genaamd Prevent Content Theft. Je kan deze downloaden vanuit de WordPress-bibliotheek of door te zoeken vanuit je WordPress-dashboard onder ‘Add New’ in het plugins tabblad. Je hoeft hier niets voor in te stellen; na installatie is hij klaar voor gebruik.

Prevent Content Theft WordPress plugin
Prevent Content Theft WordPress-plugin

Met deze plugin schakel je niet alleen het klikken met de rechtermuisknop uit op je afbeeldingen, maar de hele pagina. Hierdoor wordt al je content dus beschermd. We hebben dit op een van onze testsites geïnstalleerd en getest. Hieronder zie je een voorbeeld van wat er gebeurt wanneer een gebruiker rechts klikt op een afbeelding. Ze ontvangen een melding waarin staat dat deze functie is uitgeschakeld.

Disable right-click in WordPress
Disable right-click in WordPress

Bestanden hernoemen

Als je erachter komt dat een populaire website of een aantal sites naar jouw afbeeldingen hotlinken is er nog een andere simpele methode die je kan toepassen: het bestand een andere naam geven. Door de link op je eigen site te wijzigen veranderen de afbeeldingen in 404-errors. Hoewel dit soms handig kan zijn, is dit een tijdelijke oplossing. Wanneer er op grote schaal naar je content gehotlinkt wordt, is deze methode erg onpraktisch.

Instellingen cPanel

Als je cPanel of WHM hebt geïnstalleerd voor je domein kan je de ingebouwde hotlink-beschermingstool gebruiken. Bekijk de cPanel-documentatie voor meer informatie. Schrik echter niet, het is een fluitje van een cent.

Hoe een DMCA Takedown-melding in te dienen

Een andere oplossing is om een DMCA Takedown-melding in te dienen, aangezien de hotlinkers niet de eigenaar zijn van de afbeelding en ze deze zonder toestemming gebruiken. Dit kan een snelle manier zijn om ervoor te zorgen dat deze wordt verwijderd. Je zou verbaasd zijn wat een goed opgestelde brief kan doen. Veel website-eigenaren zullen het probleem meteen oplossen, omdat ze bang zijn voor juridische stappen.

Conclusie

Als je veel content schrijft of publiceert of graag artikelen deelt, zorg er dan voor dat je binnen de kaders van de wet handelt, naar websites linkt en niet rechtstreeks afbeeldingen toont. Als je achter de content staat die je laat zien en deze waardeert, dan is het ondersteunen van de originele auteur een logisch vervolg. Als je zelf content creëert, zorg er dan voor dat je jezelf beschermt tegen diefstal. Hotlinking is hier een onderdeel van en bescherming hiertegen hoeft niet moeilijk te zijn – zoals we hebben kunnen lezen. Elk van de hierboven beschreven methoden zorgt ervoor dat je geld, tijd en bandbreedte bespaart.

Heb je wel eens te maken gehad met hotlinking? Zo ja, dan horen we dit graag hieronder.

Daniel Pataki

Hi, my name is Daniel, I'm the CTO here at Kinsta. You may know me from Smashing Magazine, WPMU Dev, Tuts+ and other WordPress/Development magazines. Aside from WordPress and PHP I spend most of my time around Node, React, GraphQL and other technologies in the Javascript space.

When not working on making the best hosting solution in the Universe I collect board games, play table football in the office, travel or play guitar and sing in a pretty bad band.