WN

WN (https://www.wn.se/forum/index.php)
-   Serversidans teknologier (https://www.wn.se/forum/forumdisplay.php?f=4)
-   -   Hur förhindra missbruk av tjänst (https://www.wn.se/forum/showthread.php?t=10992)

Lindahl 2005-11-23 11:31

Håller på att skapa en tjänst på en hemsida. Tjänsten skall gå att testa gratis och fungera som en demonstration av vad det är man kan köpa. Nu är frågan, hur ska jag göra för att tjänsten inte ska missbrukas? Det jag vill förhindra är att man sätter en robot att ladda sidan om och om igen. Om en användare manuellt utnyttjar tjänsten 100ggr per dygn gör inte så mycket, det är som sagt robotarna jag vill ha bort.

Skulle i någon form vilja begränsa till låt säga maximalt 10 anrop per dygn. Vilka metoder finns, och vilka är bäst? Har funderat på några:

1) Logga ip-nummer i databas och endast tillåta 10 anrop per ip och dygn.
2) Bara släppa igenom webbläsare med cookie, och sedan lagra antalet anrop i cookien. Går ju lösa för den illvillige genom att deleta cookien om och om igen, men det är ju lite jobbigare, är nog dock enklast att implementera.
3) Bara släppa delar av tjänsten tillgängliga i demonstrationen. Detta är väl den säkraste metoden, men jag tycker att den är lite tråkig, då en stor del att värdet ligger just i att allt finns tillgängligt.

Jag lutar just nu åt metod 2 just med tanke på det är robotarna jag vill stoppa.

Idéer och förslag mottages tacksamt.

DeSoto 2005-11-23 11:40

Du kanske kan kombinera tvåan med att generera fram en bild med bokstäver/siffror i som robotar inte kan läsa, och att man måste fylla i det i ett fält.

elf98 2005-11-23 11:43

Förslag nummer 2 täcker ju in väldigt många, som backup kan du ju faktiskt använda förslag nummer 1.

Det vill säga du tillåter bara webbläsare med cookies, med en restriktion på X antal queries per ip oavsett vad den eventuella kakan säger.

Båda lösningarna torde vara relativt enkla att implementera.

Problemet med att lägga en begränsning på IP skulle väl kunna vara användare som sitter på ett stort NAT:at nät. (Finns det sådana nät fortfarande öht?)

Gustaf 2005-11-23 13:05

jag tror inte det finns så många NAT-nät i sverige. Men eftersom man vill ha med alla skulle jag nog använt cookie+bild, det är nog lagom, kanske även lagra yttre IP+inre IP och begränsa antalet anrop på det viset, men inte enbart använda yttre IP iaf.

eg0master 2005-11-23 13:07

Citat:

Originally posted by elf98@Nov 23 2005, 12:43
Problemet med att lägga en begränsning på IP skulle väl kunna vara användare som sitter på ett stort NAT:at nät. (Finns det sådana nät fortfarande öht?)
Typ alla företag med mer än ett fåtal anställda lär köra NATat...

Jag tror som du själv kommit på att om du kräver cookies så kommer du blocka alla bots. Om det dock skulle dyka upp en bot som klarade cookies så är väl en backuplösning med IP i databasen ett bra komplement.

eg0master 2005-11-23 13:09

Citat:

Originally posted by techtigo@Nov 23 2005, 14:05
jag tror inte det finns så många NAT-nät i sverige. Men eftersom man vill ha med alla skulle jag nog använt cookie+bild, det är nog lagom, kanske även lagra yttre IP+inre IP och begränsa antalet anrop på det viset, men inte enbart använda yttre IP iaf.
Jag är väldigt intresserad av förklaringen till varför NATade när inte skulle användas "i sverige". Ännu mer intresserad av hur du får reda på "inre IP"...

Gustaf 2005-11-23 13:50

nej jag hade nog fel, tänkte på HTTP_X_FORWARDED_FOR men det funkar ju bara för proxys, inte för NAT.

Citat:

så många NAT-nät
jag sa inte att det inte finns. Större företag kör ofta NAT, men små har ofta öppna adresser.

eg0master 2005-11-23 14:05

Citat:

Originally posted by techtigo@Nov 23 2005, 14:50
jag sa inte att det inte finns. Större företag kör ofta NAT, men små har ofta öppna adresser.
Jag skulle hävda motsatsen.
De allra flesta företag (utom mindre IT-bolag möjligen) har ett fåtal publika IP-addresser (oftast bara en eftersom det är den enda de får från sin ISP). Är inte algoritmen väldigt enkel? Om du har fler datorer anslutna till internet än antalet publika IP-adresser så måste du köra NAT:at.
Även på mycket små företag har man säkert en arbetsstation och en server, men bara en IP-adress. Jag må ha fel på den här punkten men jag skulle bli uppriktigt förvånad om mer än något fåtal procent av alla företag med mer än en anställd körde utan NAT. Genomsnittet om du tar med alla enmansföretag lär inte öka speciellt mycket. Och många privatpersoner kör även de med NAT (eftersom de har någon liten "ADSL-brandvägg" motsv) då de har fler burkar än IP. Jag tycker all logik talar för att de flesta befinner sig på NATade nät och skulle gärna se någon statistik som bevisar motsatsen.

Gustaf 2005-11-23 14:11

jo statistik skulle inte vara fel. Dock tror jag det är en hel del folk som kör med http-proxys. NAT är ju inte precis det enda alternativet.

Lindahl 2005-11-23 22:53

Nu spårade det visst ur lite, men att använda en bild typ nic.se verkar ju vara rätt metod att använda (för att återgå till topic). Tack för det tipset.

PKaze 2005-11-24 04:31

Lindahl, sök på CAPTCHA så får du mer info om att använda bilder på det här sättet.

I de andra frågorna håller jag till fullo med eg0master. Jag har samma erfarenheter. :)

/Peter

eg0master 2005-11-24 06:39

CAPTCHA (dvs bilder som människor lätt kan läsa, men inte en dator) är ju iofs ett bra sätt att förhindra automatiskt utnyttjande av tjänsten, men personligen tycker jag det är drygt att använda. Jag kan acceptera det om det är en engångsföreteelse vid registrering, men om jag förstod dig rätt så handlade det om en demo av en tjänst som man skulle få nyttja "lagom" många gånger per dygn.

Lösningen att kräva cookies från klienten är i mitt tycke smidigare för användaren (blockar bara extrem paranoida användare), smidigare för dig (busenkelt att implementera) och blockar i dagsläget sannolikt 100% av alla botar. Om någon skulle orka skriva en bot som klarade cookies bara för att kunna missbruka din demo så tycker jag nästan du kan fundera på en ny lösning när det sker (och då är det väl aktuellt med CAPTCHA eller IP logging), men risken att någon skulle göra detta lär ju vara ganska liten.

Lindahl 2005-11-24 08:43

eg0master, det ligger ju onekligen något i det du säger. Som du säger, varför skulle nån skriva en bot som klarar cookies och dessutom manipulerar dem för att klara min tjänst? Om de lägger ner så mycket jobb så känns det nästan som att de är värda att få ta del av tjänsten :P

alexut 2005-11-24 13:00

att skriva en bot som klarar cookies lär inte ta mer än 1 timme att klara det på. så med tanke på det, kanske en begränsning på säg 100uttnyttjande per ip och cookie av samma tjänst e väl nåt du bör tänka på?

zoran 2005-11-24 13:56

Citat:

Originally posted by Lindahl@Nov 23 2005, 12:31
Håller på att skapa en tjänst på en hemsida. Tjänsten skall gå att testa gratis och fungera som en demonstration av vad det är man kan köpa. Nu är frågan, hur ska jag göra för att tjänsten inte ska missbrukas? Det jag vill förhindra är att man sätter en robot att ladda sidan om och om igen. Om en användare manuellt utnyttjar tjänsten 100ggr per dygn gör inte så mycket, det är som sagt robotarna jag vill ha bort.

Skulle i någon form vilja begränsa till låt säga maximalt 10 anrop per dygn. Vilka metoder finns, och vilka är bäst? Har funderat på några:

1) Logga ip-nummer i databas och endast tillåta 10 anrop per ip och dygn.
2) Bara släppa igenom webbläsare med cookie, och sedan lagra antalet anrop i cookien. Går ju lösa för den illvillige genom att deleta cookien om och om igen, men det är ju lite jobbigare, är nog dock enklast att implementera.
3) Bara släppa delar av tjänsten tillgängliga i demonstrationen. Detta är väl den säkraste metoden, men jag tycker att den är lite tråkig, då en stor del att värdet ligger just i att allt finns tillgängligt.

Jag lutar just nu åt metod 2 just med tanke på det är robotarna jag vill stoppa.

Idéer och förslag mottages tacksamt.

Jadu, enklast är väl ändå att kräva att folk registrerar sig och loggar in för att ta del av demot. Du får fler fördelar med denna lösning. Du kan plåga dem med mail efteråt. :).

Sen lagrar du bara i databasen när tjänsten senast användes av user "foo" och räknar fram när den återigen kan användas.

Naturligtvis genererar du ickerobotläsliga bilder för registreringen.

eg0master 2005-11-25 08:07

Citat:

Originally posted by alexut@Nov 24 2005, 14:00
att skriva en bot som klarar cookies lär inte ta mer än 1 timme att klara det på.
ja, det är precis som du säger. med tanke på hur enkelt det skulle vara att skriva en bot som stödde cookies så gör ingen bot det idag (mig veterligen). Och det är ju det som är hela poängen. Att stänga ute existerande bots med minimal egen insats. Om någon sedan orkar skriva en bot enbart för att utnyttja denna tjänst så är det som lindahl skriver egentligen bara smickrande att någon orkar bry sig så de kan nästan få den freebien, eller så löser man problemet när det uppkommer i framtiden - om det över huvud taget uppkommer.

David 2005-11-25 10:17

Citat:

Originally posted by DeSoto@Nov 23 2005, 12:40
Du kanske kan kombinera tvåan med att generera fram en bild med bokstäver/siffror i som robotar inte kan läsa, och att man måste fylla i det i ett fält.
Glöm inte att inte heller synskadade kan läsa den typen av bilder.

wiggin 2005-11-25 18:07

En idé kan ju vara att använda CAPTCHA första gången besökaren använder tjänsten. Sedan sätter du en cookie för att kontrollera. Så länge cookien finns kvar så behövs inte captcha. Det betyder ju att de som inte använde cookies får captcha hela tiden. Och borde göra det mycket svårare för en bot att komma åt även om den klarar av cookies.


Citat:

Ursprungligen postat av David
Citat:

Ursprungligen postat av DeSoto
Du kanske kan kombinera tvåan med att generera fram en bild med bokstäver/siffror i som robotar inte kan läsa, och att man måste fylla i det i ett fält.

Glöm inte att inte heller synskadade kan läsa den typen av bilder.

Det e ju självklart en stor nackdel. Kanske skriva att synskadade kan skicka ett mail till x-adressen och där få en kod som fungerar istället för dem. Koden bör ju bara fungera en gång i så fall så inte bottar använder den ^_^


Alla tider är GMT +2. Klockan är nu 11:58.

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