Hvordan man blokerer robotter og afskum med htaccess

En lille tekstfil kan fungere som portner til din hjemmeside. Den kan afvise uartige søgerobotter, forhindre hotlinks til billeder o.m.a.

Dette er det sidste (i hvert fald foreløbig!) nørdede indlæg om uønskede gæster på hjemmesiden. I de første skrev jeg om, hvordan man kan kortlægge den uønskede trafik, og dette handler om, hvordan man kan blokere for den.

Som jeg før har skrevet (links nederst i dette indlæg), er der masser af søgerobotter, der gennemtrawler dit websted. Nogle er artige og nyttige, mens andre i bedste fald kun bruger masser af båndbredde.

Uartige robotter blæser på, hvad du skriver i robots.txt, og kan kun holdes ude ved at formene dem adgang. Det kan man normalt gøre med en lille tekstfil, hvis man bor på en Apache-server.

Tekstfilen hedder ”.htaccess” og har intet ”fornavn”. Den indeholder ordrer til serveren og fungerer som portner, når nogen banker på døren til dit websted. Man kan styre utrolig meget, men her koncentrerer jeg mig om adgang generelt samt sikkerhed i WordPress.

Blokering af IP-adresser

Kommandoerne i .htaccess er ofte kompliceret ”kinesisk,” men at formene IP-adresser adgang er uhyre enkelt. Man skriver simpelthen linjer med: ”deny from” og så en IP-adresse. Fx:

deny from 95.108.151.244
deny from 178.154.243.100

hvor 95.108.151.244 og 178.154.243.100 er to af de IP-adresser, som bruges af den russiske søgemaskine Yandex. Yandex er ikke lyssky, men den er uopdragen, bruger en hulens masse båndbredde og bringer ikke trafik af den type, jeg ønsker.

Hvis jeg i stedet for 178.154.243.100 skrev 178.154.243., ville jeg blokere alle adresser mellem 178.154.243.0 og 178.154.243.250. Den teknik har jeg fx brugt mod en vifte af kinesiske og ukrainske IP-adresser, som er forslugne og/eller ondsindede.

Mange hacker- eller spamrobotter, som besøger min side, kommer fra netop Kina og Ukraine, og de uopdragne søgemaskiner, BaiduSpider (Kina) og Arefsbot (Ukraine), er heller ikke velkomne. Jeg ser ingen fordele ved deres indeksering.

Blokering af IP-adresser er simpelt, men stormasket og primitivt sammenlignet med mere raffinerede metoder. Men de raffinerede metoder virker måske ikke på din server, og risikoen for fejl er større.

De relevante IP-adresser finder man ved at granske sine logfiler og evt. slå adresserne op på sider som WhatIsMyIPAddress eller hcidata.info.

Jeg nyder at se i mine logfiler, at blokeringerne virker, og at forslugne robotter ikke længere æder omkring en halv gigabyte båndbredde om måneden til ingen verdens nytte for mig.

Blokering af hotlinks

Et hotlink er, når nogen bruger et af dine billeder på deres egen side og linker direkte til billedets adresse på din side. På den måde bruger de af din (servers) båndbredde.

På nogle servere kan man blokere for hotlinks via brugerfladen (fx cPanel), men ellers kan man selv, hvis Apache-modulet mod-rewrite er aktivt. Man gør det ved at skrive flg. i sin htaccess-fil:

RewriteEngine on
RewriteCond %{HTTP_REFERER} !^https://sitestory.dk/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^https://sitestory.dk$ [NC]
RewriteCond %{HTTP_REFERER} !^http://www.sitestory.dk/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://www.sitestory.dk$ [NC]
RewriteRule .*\.(jpg|jpeg|gif|png|bmp)$ - [F,NC]

Ovenstående vil forhindre links til filer med endelsen jpg, jpeg, gif osv., medmindre linket kommer fra sitestory.dk eller www.sitestory.dk. Udråbstegnet fortæller serveren, at det er en undtagelse fra reglen.

Jeg ville nok også undtage en del af de større søgemaskiner, da billedsøgninger jo også bringer trafik.

Selv blokerer jeg ikke for hotlinks – hvorfor afvise ”linkjuice”? Hvis jeg gjorde, ville mange sikkert kopiere i stedet, og det er meget sværere at spore. Med hotlinks kan jeg i det mindste holde øje med, hvad der foregår, og jeg kan evt. ”stemple” billederne med ”sitestory.dk”.

Sikkerhed i WordPress

Hackere jagter konstant sikkerhedshuller i WordPress og andre PHP-baserede systemer. PHP er sårbar af natur. Jeg har selv prøvet at blive hacket, og det var bestemt ikke morsomt.

Jeg bruger nu et plugin, som øger sikkerheden ganske betragteligt ved netop at skrive htaccess-filer, som styrer, hvem der må tilgå hvad. Plugin’et hedder BulletProof Security, og det tør jeg godt anbefale.

BulletProof Security styrer den del af min webside, som har med WordPress at gøre. Jeg har skrevet min egen og meget simplere htaccess-fil, som ligger i roden, og som gælder generelt. Da resten af mit website er almindelige html-filer og ikke PHP-baseret, er det langt fra så sårbart som WordPress, så her koncentrerer jeg mig om at blokere for afskum og forslugne robotter.

Et andet nyttigt WordPress-plugin er Limit Login Attempts, som begrænser, hvor mange gange en person kan prøve at logge sig ind som administrator.

IP-adresserne logges, og nogle af de ivrigste båtnakker har jeg blokeret definitivt i min htaccess-fil. Chancen for at knække mit kodeord er uendelig lille, men det forstyrrer min husfred, når de banker på igen og igen.

Mere om .htaccess

Dette indlæg er kun en forsmag skrevet af en novice, og før du kaster dig ud i at skrive dine egne htaccess-filer, vil jeg stærkt anbefale, at du læser mere om emnet hos dem, der virkelig ved noget. Et godt sted at starte er fx Perishable Press.

Det kan lyde frygtelig indviklet, men ærlig talt: Hvor svært kan det være at lave en tekstfil, hvor der står nogle linjer med ”deny from” + IP-adresse?

Når man skriver sin .htaccess-fil skal man bare huske at bruge en ren teksteditor som fx Notepad, og bruger man FTP, skal filen overføres til serveren som ASCII (altså ikke binær).

Relateret:

8 tanker om "Hvordan man blokerer robotter og afskum med htaccess"

  1. Stegemüller

    Tusind tak for endnu et uhyre nyttigt indlæg; jeg vil kaste mig ud i at forsøge at hindre uønsket trafik, og håber, at jeg må vende tilbage til dig hvis jeg løber sur det.

    Svar
  2. Donald

    Jeg har blokeret for Microsoft, som også bare æder båndbredde, med iptables. Men jeg fik ikke opdateret den opsætningsfil, som jeg bruger til “netfilter” med iptables, og jeg kan se at der nu er mange flere uønskede hits på d-axel.dk som iøvrigt slet ikke er opdateret, uha, det er faktisk 4 år siden at jeg skulle være begyndt på webserver opdatering, især bør gæster til linuxmesse.dk have en ordentlig information; og på den private side havde jeg glæde af en courier imap-webmail når jeg var ude (men det er jeg jo ikke så ofte nu).

    Svar

Skriv et svar til Eric Annuller svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *