jan 03

Jeg skrev tidligere litt om problemet med hotlinking. Et heller dårlig forsøk på å få stoppet det endte med at bilder fra siden min heller ikke kunne vises i feeds eller uavhengige RSS-lesere. Etter fiaskoen bestemte jeg meg for å la det være, og tenkte ikke noe særlig mer over det. Men så skjedde det igjen. Nok en gang fikk jeg en link til siden min, fra en som viser et bilde jeg har liggende på mitt domene.

Jeg bestemte meg for å angripe problemet på en litt annen måte. Istedet for å stoppe alle, stopper jeg kun de jeg oppdager. Greit nok, mange kan bruke bildene mine uten at jeg nødvendigvis oppdager det, men forhåpentligvis får jeg gortsatt vist bildene til dere som abonnerer på min nyhetsstrøm1/feed via RSS. Jeg kan alltids legge til flere etterhvert som flere blir oppdaget. Jeg sjekker litt statistikk og logg iblant, så det hender jeg finner noen syndere.

For å få til dette har jeg nok engang vært å hacket litt i .htaccess2-filen. Denne gangen la jeg inn følgende kode:


# BEGIN Hotlink stopper
RewriteEngine on
RewriteCond %{HTTP_REFERER} ^(.+.)?blogspot.com/ [OR]
RewriteCond %{HTTP_REFERER} ^(.+.)?livejournal.com/ [OR]
RewriteCond %{HTTP_REFERER} ^(.+.)?myspace.com/ [OR]
RewriteCond %{HTTP_REFERER} ^(.+.)?trykker.com/ [OR]
RewriteCond %{HTTP_REFERER} ^(.+.)?wordpress.com/
RewriteCond %{REQUEST_URI} !/wp-content/uploads/hotlink.jpg
RewriteRule .*.(gif|jpg|png|avi)$ /wp-content/uploads/hotlink.jpg
# END Hotlink stopper

Kort fortalt gjør den følgende. Dersom HTTP_REFERER3 viser til en av sidene jeg har listet opp (blogspot, livejournal, myspace, trykker og wordpress foreløpig) skal den vise bildet hotlink.jpg istedet for bildet som etterspurt. Foreløpig er dette bare et bilde jeg fant på nettet, men denne skal erstattes med eget bilde etterhvert.

Listen over nettsider kan jeg redigere etterhvert, foreløpig har jeg valgt å legge inn de største bloggesidene, da dette er de hyppigste tilfellene av leeching hos meg.

Et eksempel på hvordan dette ser ut i praksis kan du se her: Fascisme på norsk. Egentlig skulle det være et bilde av Kong Harald der, men det beholder jeg selv.

Erstatningsbilde ved hotlinking
Bildet som jeg foreløpig bruker ser slik ut. Det er kanskje ikke så rart at jeg ønsker å bytte det ut?

  1. Herlig med slike norske ord, synes du ikke? []
  2. Den morsomme filen som du definitivt bør ta backup av før du begynner å tulle med, hvis du ikke vet hva du driver med. []
  3. HTTP_REFERER forteller hvor etterspørselen kommer fra. Les mer på Wikipedia. []
des 28

Noen stjeler av meg. De trodde kanskje ikke at jeg ville merke noe, men jeg følger alltid med. Jeg vet hva hva som foregår. Det er tyver på ferde. De finner bilder på siden min og stjeler dem. Og verre: de hotlinker. Bilder fra xmasb.com blir brukt på andre nettsider uten min tillatelse, og uten å hente ned filene. De lar nemlig bildene ligge på serveren min, slik at det er jeg bruker båndbredden hver gang de blir vist. Men nå er det slutt.

Jeg har nå sperret tilgangen til bilder fra andre nettsider, og jeg har tatt høyde for at de skal vises i feeds også. Skulle andre være interessert finner de oppskriften som skal legges inn i .htaccess-filen her:


# Hotlink Protection with Feedburner Access
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://example.com$ [NC]
RewriteCond %{HTTP_REFERER} !^http://example.com/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://www.example.com$ [NC]
RewriteCond %{HTTP_REFERER} !^http://www.example.com/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://www.feedburner.com/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://feeds.feedburner.com/example$ [NC]
RewriteCond %{HTTP_REFERER} !^http://feeds.feedburner.com/exampleComments$ [NC]
RewriteRule .*.(jpe?g|gif|bmp|png)$ http://example.com/wp-content/uploads/hotlink.jpe [L]

NB:Jeg tar selvsagt intet ansvar skulle du ødelegge noe ved bruk av denne koden.

Bytt ut “example.com” med ditt domene, og sett riktig url for feeds. Siste linje erstatter alle bilder med et eget bilde kalt “hotlink.jpe”. Jeg har brukt filendelsen “.jpe” for å forhindre at ReWriteRule forsøker å erstatte den igjen (og dermed skape en evig løkke). Jeg skal ikke gå gjennom hva hver enkelt linke gjør, men foreslår at du leser litt om bruken av .htaccess dersom du skal ta i bruk dette. Et kjapt søk på google med “prevent hotlinking images feedburner” gir mye info for den som ønsker det.

Det finnes mange varianter til .htaccess som gjør samme nytten, dette ser ut til å fungere for meg. For ordens skyld legger jeg ved et bilde i denne posten, for å sjekke at feeds også fungerer som de skal.

Lys
Bare et bilde jeg tok av noen lys på bordet, mest for å teste hvordan lysene fra juletreet bak ville se ut.