Voorkom Image Hotlink met Nginx

Voor MaartenvandeKamp.nl gebruik ik de webserver Nginx. Een lichtgewicht webserver met heel veel mogelijkheden. Een daarvan heb ik ingezet om te voorkomen dat websites naar mijn afbeeldingen kunnen linken.

Ik gebruik voor het serveren van statische bestanden het domein s0.maartenvandekamp.nl. Vanaf dit domein worden alle statische bestanden, zoals .jpg, .png en andere, aangeboden aan de bezoeker. Om te voorkomen dat websites gebruik maken van mijn foto’s is het nodig om de directe toegang tot deze bestanden te verbieden. Dat klinkt nogal grof, maar het kan mijn site enorm vertragen, mocht het gebeuren!

Ik heb de volgende code gebruikt om ervoor te zorgen dat bestanden niet direct te openen zijn:

location / {
valid_referers blocked www.maartenvandekamp.nl;
if ($invalid_referer)
{
return 405;
}
}

Wat deze code doet is heel eenvoudig. Het controleert of de aanvraag voor een afbeelding van het domein www.maartenvandekamp.nl komt. Is dat niet het geval? Dan wordt de verbinding direct verbroken.

Nginx kent daar een aparte statuscode voor, namelijk 405 Not Allowed.