WN

WN (https://www.wn.se/forum/index.php)
-   Allmänt (https://www.wn.se/forum/forumdisplay.php?f=2)
-   -   Direktlänkning kraschar servern (https://www.wn.se/forum/showthread.php?t=3142)

Helena 2004-08-16 18:46

Jag har länge haft problem med att folk direktlänkar till mina gratisbilder, men de senaste veckorna har det gått så långt att servern har lagt av vid ett flertal tillfällen pga. att det ibland är hundratals anrop till en enda fil (gånger X antal filer...) inom bara ett par sekunder.

Jag har provat att blockera med .htaccess, men då fick besökare med IE6 problem att överhuvud taget se bilderna på sajten, så det fick jag ta bort. Annars har jag kört med att döpa om mappen med gratisgrafiken, men jag måste göra det många gånger i veckan om det ska göra någon nytta, och det är ju inte hållbart i längden. Det rör sig om tusentals olika användare, så att blockera IP-nummer är inte att tänka på.

Igår la jag in lösenord på mappen, som en akutåtgärd, men den lösningen gillar jag inte. Om inte annat blir det problem för folk som kommer direkt från sökmotorerna.

I värsta fall får jag ta bort gratisbilderna, men det vore trist. Dessutom tror jag att de är bra reklam för det som kostar pengar.

Finns det något mer att prova, som jag inte har tänkt på?

kullervo 2004-08-16 19:01

Tillåt endas nerladdning av filerna om en session redan är skapad. Görs enkelt med PHP/ASP/etc. Använd mod_rewrite (eller motsvarande) så länkarna går till något som ser ut som riktiga filnamn. En litet hyss vore att om en förfrågan kommer med HTTP Referer www.bildtjyvarna.com/helanas_bilder.html så generars en bild där det står något illa om bildtjyvarna.com.

Säg till om du tyckte jag var för otydlig.

grazzy 2004-08-16 19:33

Kör en RewriteCond som kollar referer OCH agent då.

Låt dom med IE6 titta på bilder och dom andra inte.. :) .. sen kan du juh RewriteRule'a till nån dynamisk historia som skriver ut din sites namn på bilderna ifall dom har ie 6 och inte skickar med referer..


Att det inte kommer nån refererr brukar väl oftast bero på att folk har personliga firewalls dock..

Henrik Larsson 2004-08-16 20:18

Du behöver inte köra bilderna genom någon speciell ASP- eller PHP-sida utan allt går att göra direkt med mod_rewrite i Apache. Se exempelvis badasschick.com/v01/sub09/_000411/sub09/1/ för instruktioner om hur du kan gå tillväga.

Men det kanske det var det du redan hade testat med i din .htaccess-fil och som strulade med IE6? I så fall så tror jag att det berodde på att blockeringen av bilderna även gällde när HTTP_REFERER saknades. Att bara blockera bilder för de som anger en felaktig HTTP_REFERER tror jag räcker gott. Åtminstone så är det ett steg i rätt riktning.

Helena 2004-08-16 21:09

Tack för alla svar!

Citat:

kullervo skrev: Tillåt endas nerladdning av filerna om en session redan är skapad. Görs enkelt med PHP/ASP/etc. Använd mod_rewrite (eller motsvarande) så länkarna går till något som ser ut som riktiga filnamn. En litet hyss vore att om en förfrågan kommer med HTTP Referer www.bildtjyvarna.com/helanas_bilder.html så generars en bild där det står något illa om bildtjyvarna.com.

Säg till om du tyckte jag var för otydlig.

Det där låter klart intressant. Ska se om jag kan lista ut hur det funkar, annars återkommer jag väl. :)

Citat:

Henrik Larsson skrev: Du behöver inte köra bilderna genom någon speciell ASP- eller PHP-sida utan allt går att göra direkt med mod_rewrite i Apache. Se exempelvis badasschick.com/v01/sub09/_000411/sub09/1/ för instruktioner om hur du kan gå tillväga.

Men det kanske det var det du redan hade testat med i din .htaccess-fil och som strulade med IE6? I så fall så tror jag att det berodde på att blockeringen av bilderna även gällde när HTTP_REFERER saknades. Att bara blockera bilder för de som anger en felaktig HTTP_REFERER tror jag räcker gott. Åtminstone så är det ett steg i rätt riktning.

Jo, det var nog det jag testade förut. Här är koden jag använde då:

Kod:

RewriteEngine On
Options +FollowSymLinks

RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://graphicgarden.com/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://www.graphicgarden.com/.*$ [NC]
RewriteCond %{HTTP_USER_AGENT} ^.*MSIE.*$
RewriteRule .*\.(gif|GIF|jpg|JPG|zip|ZIP|png|PNG|swf|SWF)$ - [F]

Ett annat problem var att det inte funkade i Netscape/Mozilla, så gör jag undantag även för IE6 blir det inte många kvar... Hur skulle man kunna göra ovanstående kod bättre?

Lösenordsskyddet jag har som tillfällig lösning funkar, men det är ack så tidskrävande med alla idioter som inte klarar av att skriva in abc 123 rätt... För att inte tala om att alla de som direktlänkar nu får upp inloggningen på sina egna sajter med (lite kul, iofs) och skriver och klagar...

digiArt 2004-08-16 23:09

Kanske redan hittat lösningen, men följande artikel kanske kan vara intressant?

www .alistapart .com/articles/hotlinking/

Tommy 2004-08-22 23:53

Ett alternativ är ju fakstikst att begränsa bandbredden till IISen. Dock är väl inte det den smartaste lösningen men det fungerar.

/ Tommy

Henrik Larsson 2004-08-23 00:10

Citat:

Originally posted by Helena@Aug 16 2004, 21:09
Ett annat problem var att det inte funkade i Netscape/Mozilla, så gör jag undantag även för IE6 blir det inte många kvar... Hur skulle man kunna göra ovanstående kod bättre?


Att det inte funkade så bra med .htaccess hade sin orsak i att...

Kod:

RewriteEngine On
Options +FollowSymLinks

RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://graphicgarden.com/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://www.graphicgarden.com/.*$ [NC]
RewriteCond %{HTTP_USER_AGENT} ^.*MSIE.*$
RewriteRule .*\.(gif|GIF|jpg|JPG|zip|ZIP|png|PNG|swf|SWF)$ - [F]

...du med ovanstående kodsnutt just blockar de som inte anger någon HTTP_REFERER alls (dvs. vilken sida de kommer ifrån) samt de som kör Internet Explorer (HTTP_USER_AGENT = *MSIE*). Behåll alltså följande rader kod och testa igen...

Kod:

RewriteEngine On
Options +FollowSymLinks

RewriteCond %{HTTP_REFERER} !^http://graphicgarden.com/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://www.graphicgarden.com/.*$ [NC]
RewriteRule .*\.(gif|GIF|jpg|JPG|zip|ZIP|png|PNG|swf|SWF)$ - [F]

...så borde du få ett grundläggande skydd där de som anger en HTTP_REFERER (majoriteten) som även är felaktig, får nobben.

Varför det inte funkade med Mozilla/Netscape kan jag inte svara på, men det händer att vissa versioner av webbrowsers anger *MSIE* i HTTP_USER_AGENT-informationen för att berätta att de är MSIE-kompatibla. Därav borde även dessa ha plockats upp av MSIE-blockeringen...

Henrik Larsson 2004-08-23 00:12

Citat:

Originally posted by Tommy@Aug 22 2004, 23:53
Ett alternativ är ju fakstikst att begränsa bandbredden till IISen. Dock är väl inte det den smartaste lösningen men det fungerar.
Fast i det här fallet så är det inte ett alternativ då IIS inte används som webbserver utan Apache.

Tobias Turesson 2004-08-23 06:48

Vad har du för server specs ?
Hur många hits på en gång gör att server krashar ?

:blink:

Funderar själv på att skaffa server, dock hos ev1.

Helena 2004-08-23 10:37

Tack för alla svar! Har haft fullt upp med att rita mobilbilder, men tänkte ta tag i direktlänknings-eländet nu i veckan.

Henrik: Toppen! Ska testa din kod så snart jag hinner.

Citat:

Tobias skrev: Vad har du för server specs ?
Hur många hits på en gång gör att server krashar ?

Det är ingen värstingmaskin (RaQ4 med 1024MB RAM). Apache/Linux. Mellan 6500 och 8000 besökare/dag. Enbart statiska sidor och lite script (sök och vykort), men mängder av nerladdningar, och det klarar den galant. Det enda problemet jag har haft är det här med direktlänkningen. När servern har kraschat har det varit hundratals (ibland tusentals) hits inom bara några få sekunder.

Återkommer när jag har hunnit testa några av era förslag!

Helena 2004-08-23 20:42

OK, nu har jag fixat den nya .htaccess-filen och det verkar funka perfekt! Jag har kollat med alla webbläsare jag har tillgång till (Mozilla, Netscape 4.79 + 6.0, Opera och Explorer 5.5) och med Henriks kod funkar det alltså även i Netscape/Mozilla. Tyvärr har jag inte IE6, men jag har bett att folk ska säga till om de får problem. Förhoppningsvis inte. Tack än en gång!

Edit: Aj då, jag har redan fått mail om att folk inte ser bilderna på själva hemsidan. Säkert IE6-användare, precis som förra gången. Suck! Jag har bett om mer info från dessa besökare, så ska vi se om jag får det bekräftat.

Helena 2004-08-24 09:38

Nu har jag fått mer information från de som hade problem med att ens se bilderna på min egen sida. Alla använder IE6, MEN samtidigt funkade det bra för vissa andra IE6-användare, så det verkar inte vara IE6 i sig som är problemet.

En rapporterade att det funkade när hon stängde av sin Norton's Anti-Virus/Firewall 2004. Enligt henne trodde Norton att bilderna var annonser och lät dem därför inte laddas. Det låter ju väldigt märkligt. När inte htaccess-koden är aktiv ser hon bilderna fast brandväggen är på.

Baserat på vad besökarna har berättat verkar det alltså vara brandväggen ihop med IE6 som ger problem - inte grejerna var för sig. De som har hört av sig säger att de har detta problem på många andra sajter också. Med tanke på att jag fick tio brev på en kvart borde kanske andra som kör htaccess för att blockera direktlänkning börja bekymra sig...

Nu vet jag inte vad jag ska ta mig till. Får börja beta av lite andra förslag som jag har fått av er.


Alla tider är GMT +2. Klockan är nu 22:40.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson