---
title: Nginx: Hotlink-skydd via omskrivning - isla Studio
url: https://isla-stud.io/fr/howtos-anleitungen/nginx-hotlink-schutz/
datum: 2016-01-31
---

# Nginx: Hotlink-skydd via omskrivning

Det finns inte ens en backlink till din egen webbplats, såvida inte innehållstjuven helt enkelt har kopierat och klistrat in hela innehållet från källkoden till sin webbplats. Då kan det hända att du har länkat någonstans till ett annat av dina egna inlägg med den fullständiga webbadressen. Och den här länken finns då fortfarande i texten. Men ta först ett djupt andetag och börja med det viktigaste:



Vad är egentligen en hotlink?



En hotlink är till exempel integrationen av en bild via en direktlänk till den befintliga URL:en. Utan att ladda ner bilden i förväg, ladda upp den på ditt eget webbutrymme eller server och sedan länka den därifrån.



Hotlinks är i allmänhet inte något dåligt. Åtminstone inte om man har kommit överens om hotlinkingen med varandra eller om man är en bilduppladdningstjänst, men i de flesta fall är man inte en bilduppladdningstjänst utan helt enkelt någon som betalar för sitt webbhotell varje månad och har en viss trafikgräns. Och här kommer vi till pudelns kärna: Om någon annan visar mediefiler på sin hemsida som finns på din webbserver, kommer din server att betjäna var och en av dessa förfrågningar från tredje part, eftersom det är vad servrar gör. De serverar (serverar, tillhandahåller, serverar, serverar).



Nu har innehållstjuven en gratis bild på sin webbplats för vilken ingen trafik genereras / laddas på sin egen server. Denna trafik (serverbelastning) faktureras tjuven, dvs. dig, och kostar serverresurser varje gång en besökare surfar till innehållstjuvens webbplats och bilden visas i deras webbläsare. Beroende på hur mycket besökstrafik innehållstjuven har på sin webbplats är detta verkligen inte roligt.



Idag vill jag visa dig hur du kan konfigurera din egen NGINX-webbserver så att den inte serverar dessa externa förfrågningar som förväntat, utan istället serverar besökarna på innehållstjuvens webbplats en annan bild, så att du kan vända den förmodade skadan och dra nytta av den och, om du är riktigt arg, få en över på tjuven: få besökarna till din egen webbplats!



Hur du kan göra NGINX till en oövervinnlig hotlink-fiende!



Detta är planen:



 Vi vill ha en heltäckande lösning som fungerar för alla domäner. Så att man inte behöver anpassa varje enskild vHost-konfiguration (sites-available). Request-länken ska skrivas om och en specifik, annan bild ska serveras till tjuvsidan istället. Det måste fungera med Google Image Search och andra sökmotorer med bildsökfunktion, istället för att förbjuda hotlinking helt och hållet. Annars kommer Google Image Search inte längre att visa dina faktiska bilder, utan bara ersättningsbilden



Lösning på bildstöld



Dessa få rader kod är i slutändan lösningen på problemet med bildstöld. Hur och var du ska placera koden kan du läsa om i nästa avsnitt.



plats ~* \.(ogg|ogv|svg|svgz|eot|otf|woff|mp4|ttf|css|rss|atom|js|jpg|jpeg|gif|png|ico|zip|tgz|gz|rar|bz2|doc|xls|exe|ppt|tar|mid|midi|wav|bmp|rtf|swf)$ {
  add_header "Access-Control-Allow-Origin" "*";
  access_log av;
  log_not_found av;
  expires max;
  valid_referers none blocked ~.google. ~.bing. ~.yahoo. ~.yandex. server_namn ~($host);
    if ($invalid_referer) {
      rewrite (.*) /hotlink/eight-content-and-image-stealing.png omdirigering;
      }
}
#hotlink avsluta omdirigeringsslingan
location = /hotlink/acht-inhalts-und-bilderklau.png { }



Vad gör koden?



~ används för att ta hänsyn till stora/små bokstäver, medan ~* ignorerar stora/små bokstäver.



NGINX kontrollerar platsregeln i den ordning som de reguljära uttrycken infogas. Detta innebär att instruktionerna för cachningshuvudet för mediefiler och instruktionerna för vårt hotlink-skydd måste finnas i samma block!



location = /hotlink/achtung-inhalts-und-bilderklau.png { } krävs för att den nya begäran om ersättningsbilden inte ska resultera i en oändlig vidarebefordringsloop:
Bildstöldssajten skickar begäran om bildA → vår NGINX omdirigerar begäran om ersättningsbild → bildstöldssajten skickar begäran om ersättningsbild → vår NGINX omdirigerar begäran om ersättningsbild, men serverar inte → och så vidare...







$host är en variabel som gör denna instruktion globalt användbar och fungerar under alla vHost-domäner på webbservern. Följande URL är giltig för alla domäner: http://$host/hotlink/achtung-inhalts-und-bilderklau.png



Du ska bara skapa katalogen /hotlink under varje domän och lagra en bildfil med namnet: achtung-inhalts-und-bilderklau.png i denna katalog. Du kan också namnge filen och katalogen på annat sätt om du vill. Anpassa bara koden i enlighet med detta.



För att integrera platsregeln





Så här går du tillväga för att utrusta din NGINX-webbserver med detta speciella hotlink-skydd mot bildstöld.


Total tidsåtgång : 30 minuter


Förberedelser: Skapa och ladda upp en utbytesgrafik
Skapa först en grafik som besökare på Thiefs webbplats ska se och ladda upp den till önskad katalog på din webbserver. Anteckna webbadressen till grafiken.



Anpassa konfigurationen av NGINX-webbserverns platser
På din server navigerar du till katalogen /etc/nginx/common/ och hittar den platskonfiguration som ingår i serverblocket för din vhost, som innehåller regler för den plats som definieras i koden ovan. Som regel kommer det redan att finnas ett befintligt regelblock för den angivna platsen. Om så inte är fallet infogar du bara ovanstående kod som ett nytt regelblock i rätt fil; om blocket redan finns infogar du bara ovanstående regler utan locations-omslaget.



Spara och ladda om NGINX webbserverkonfiguration
Spara sedan konfigurationsfilen med det utökade platsblocket på servern och testa den nya konfigurationen först via SSH-terminalen med nginx -tOm testet går igenom utan problem startar du om din NGINX med kommandot service nginx restart.










Testa ditt hotlink-skydd!



Här har jag skrivit ett verktyg som du kan använda för att testa konfigurationen av ditt hotlink-skydd. Ange den direkta URL:en för en grafik på din nginx-server i inmatningsfältet. Helst ska din ersättningsbild sedan visas i utdatafältet nedan. Om bilden från den angivna URL:en visas måste du kontrollera ditt hotlink-skydd igen.



Om du vill köra testet flera gånger i följd för samma bild-URL måste du rensa webbläsarens cache efter varje test och ladda om den här sidan.



 Kontrollera bildens URL







Har du fortfarande frågor? Tveka då inte att använda kommentarsfunktionen under den här artikeln!



Dela gärna den här artikeln på din Facebook-sida, Twitter, Google+ eller någon annan valfri social plattform. Du hittar delningsknapparna nedan. Det är snabbt och enkelt att dela och jag skulle verkligen uppskatta det.