WN

WN (https://www.wn.se/forum/index.php)
-   Serversidans teknologier (https://www.wn.se/forum/forumdisplay.php?f=4)
-   -   Stoppa voting-bot (https://www.wn.se/forum/showthread.php?t=8331)

zoran 2005-06-06 10:43

Citat:

Originally posted by FredrikMH@Jun 5 2005, 23:43
Fick ett litet problem idag på topgamesites.net. En sida fick på ett par timmar 400 röster men det påverkade inte min räknare något alls. Alltså misstänks sidan för att fuska och efter letande i logg filen så tar jag det för givet. Alla normala röster kommer från deras inloggningssida och det ser rätt ut. Men det kommer även röster från en blank sida med endast en länk till min lista.

ferion.com /portal/news.php?code=blaat

Alla röster som kommer därifrån har exakt samma useragent, och inte vilken som hellst :D
210.15.227.8 - - [05/Jun/2005:19:39:07 +0200] "GET /mmorpg__mpog HTTP/1.1" 200 1840 "[samma url som ovan]" "$USER_AGENT"

Detta ip återkommer om och om igen på 2 rader i loggen. Den ena är GET och den andra är POST. Självklart fusk och mitt script kommer endast ihåg den som röstade senast på en sida vilket gör att 2ip räcker. Detta ska jag dock ändra för att dra ner möjligheterna.

Det är flera ipn som kommer från den nämda sidan och alla återkommer om och om i loggen med jämna mellanrum. Så nu undrar jag om ni har något smart sätt att bli immun mot bottar. Hela mitt script bygger på att det är en referrer för annars kan man inte vota alls så det tar bort möjligheten från en del proxys då de tar bort referrern (tror jag).

Lite hjälp tack :D

Vad sägs om att när rösten skickas:

1. Kolla om kakan HAS_VOTED är satt
a. Om inte:
1a. Sätt kaka HAS_VOTED till 1
2a. Kolla om kakan HAS_VOTED är satt till 1
x. Om inte: Kasta rösten (kakor kan inte sättas).
y. Om ja: Räkna rösten (kakor kan sättas och den var 0)

b. Om ja:
1b. Kasta rösten (kakan var redan satt)


Visst går det att ha en bot som sätter kakan för att kunna rösta och sen tar bort den, men jag kan knappast tänka mig att någon gått genom hela besväret bara för att lyckas fuska. Tror snarare att det blir så att bottar inte klarar att sätta kakor alls.

/Zoran

kullervo 2005-06-06 11:12

Citat:

Originally posted by Jonas@Jun 6 2005, 06:32
Vidarutveckla kullervos ide med javascript.

Ta bort Submit knappen. Ersätt den med en länk: Rösta

Många botar klarar inte av javascript och som kullervo säger, det lär ta bort 99% utav fallen. Vill du ha bort den sista % också så får du lägga till bild verifiering.

Jag tänkte snarare att man ska räkna fram en checksumma på något som ändras hela tiden. Sedan skitar man ner Javascriptet så hårt att det blir oläsligt och svårt att se hur algoritmen ser ut.

Edit: De där med proxy som grazzy och FredrikMH skrev lät väldigt lovande.

hnn 2005-06-06 14:36

Citat:

Ursprungligen postat av zoran
Citat:

Ursprungligen postat av FredrikMH
Fick ett litet problem idag på topgamesites.net. En sida fick på ett par timmar 400 röster men det påverkade inte min räknare något alls. Alltså misstänks sidan för att fuska och efter letande i logg filen så tar jag det för givet. Alla normala röster kommer från deras inloggningssida och det ser rätt ut. Men det kommer även röster från en blank sida med endast en länk till min lista.

ferion.com /portal/news.php?code=blaat

Alla röster som kommer därifrån har exakt samma useragent, och inte vilken som hellst :D
210.15.227.8 - - [05/Jun/2005:19:39:07 +0200] "GET /mmorpg__mpog HTTP/1.1" 200 1840 "[samma url som ovan]" "$USER_AGENT"

Detta ip återkommer om och om igen på 2 rader i loggen. Den ena är GET och den andra är POST. Självklart fusk och mitt script kommer endast ihåg den som röstade senast på en sida vilket gör att 2ip räcker. Detta ska jag dock ändra för att dra ner möjligheterna.

Det är flera ipn som kommer från den nämda sidan och alla återkommer om och om i loggen med jämna mellanrum. Så nu undrar jag om ni har något smart sätt att bli immun mot bottar. Hela mitt script bygger på att det är en referrer för annars kan man inte vota alls så det tar bort möjligheten från en del proxys då de tar bort referrern (tror jag).

Lite hjälp tack :D

Vad sägs om att när rösten skickas:

1. Kolla om kakan HAS_VOTED är satt
a. Om inte:
1a. Sätt kaka HAS_VOTED till 1
2a. Kolla om kakan HAS_VOTED är satt till 1
x. Om inte: Kasta rösten (kakor kan inte sättas).
y. Om ja: Räkna rösten (kakor kan sättas och den var 0)

b. Om ja:
1b. Kasta rösten (kakan var redan satt)


Visst går det att ha en bot som sätter kakan för att kunna rösta och sen tar bort den, men jag kan knappast tänka mig att någon gått genom hela besväret bara för att lyckas fuska. Tror snarare att det blir så att bottar inte klarar att sätta kakor alls.

/Zoran

Men om botten inte hanterar kakor ;)

Egentligen bara till o skita i o regga röstningen isåfall..
Men då drabbas ju alla dom som inte röstat

Att använda JS script är nog enklast

Jonas 2005-06-07 01:10

Citat:

Originally posted by zoran@Jun 6 2005, 09:43
Vad sägs om att när rösten skickas:

1. Kolla om kakan HAS_VOTED är satt
a. Om inte:
1a. Sätt kaka HAS_VOTED till 1
2a. Kolla om kakan HAS_VOTED är satt till 1
x. Om inte: Kasta rösten (kakor kan inte sättas).
y. Om ja: Räkna rösten (kakor kan sättas och den var 0)

b. Om ja:
1b. Kasta rösten (kakan var redan satt)


Visst går det att ha en bot som sätter kakan för att kunna rösta och sen tar bort den, men jag kan knappast tänka mig att någon gått genom hela besväret bara för att lyckas fuska. Tror snarare att det blir så att bottar inte klarar att sätta kakor alls.

/Zoran

I PHP (säkert andra språk också) så blir det jobbigt.

Eftersom efter du har kört setcookie() så måste du ladda om sidan för att PHP skall kännas vid den.
Det blir 2st omladdningar varav stortsett en onödig. När det går att göra på fler och bättre sätt.

Med cookies kan man fuska. Det är bara att radera cookien så har man automatiskt rösträtt igen.

grazzy 2005-06-07 02:09

Cookie + IP kommer du långt med (dvs, om det är samma ip men olika cookies så är det "Ok"). Sen kan du även lägga till tex så att på sidan finns det ett javascript som utför en operation, tex lägger ihop två värden med javascript som den sedan submittar och så jämför du resultatet på serversidan. Det är enkelt att göra om du har tillgång till din algoritm. Men det blir jobbigt för en hacker att skriva kod för att anpassa sin bot till det om du använder lite scramble av javascriptskoden och skriver lite klurigt.

Vill du vara helt säker får du ju ta till saker som att folk skall kolla vad det står i en bild osv, men då börjar man kanske tappa lite väl mycket användbarhet.

zoran 2005-06-07 10:01

Citat:

Originally posted by Jonas@Jun 7 2005, 01:10
I PHP (säkert andra språk också) så blir det jobbigt.

Eftersom efter du har kört setcookie() så måste du ladda om sidan för att PHP skall kännas vid den.
Det blir 2st omladdningar varav stortsett en onödig. När det går att göra på fler och bättre sätt.

Med cookies kan man fuska. Det är bara att radera cookien så har man automatiskt rösträtt igen.

Nja, jobbigt o jobbigt. Det du kan göra är att göra en omladdning av en sida som inte ens innehåller något annat än headrar. Då är det inte direkt så jobbigt.

Och visst är det bara att ta bort kakan och rösta igen. Men hur troligt är det att botten är programmerad att ta emot en kaka, när servern frågar om kakan returnera den, och sen radera den?

Min gissning är att bottar oftast är ganska "dummprogramerade" och knappast innehåller stöd för kakor överhuvudtaget. Vem orkar hacka en bott för röstfusk?

/Zoran

hnn 2005-06-08 12:07

Citat:

Originally posted by zoran@Jun 7 2005, 10:01

Min gissning är att bottar oftast är ganska dummprogramerade och knappast innehåller stöd för kakor överhuvudtaget. Vem orkar hacka en bott för röstfusk?
/Zoran

Varför ens koda in cookie stöd i en bot? :P

Oftast kolla man ifall kakan finns eller inte... Finns den inte, så genomförs röstningen...

#EDIT Stavfel..

kullervo 2005-06-08 12:20

Citat:

Ursprungligen postat av hnn
Citat:

Ursprungligen postat av zoran
Min gissning är att bottar oftast är ganska dummprogramerade och knappast innehåller stöd för kakor överhuvudtaget. Vem orkar hacka en bott för röstfusk?
/Zoran


Varför ens koda in cookie stöd i en bot? :P

Oftast kolla man ifall kakan finns eller inte... Finns den inte, så genomförs röstningen...

#EDIT Stavfel..

Eller så gör man först ett cookitest som kollar om klienten klarar av cookies. Gör den inte det så godtas inte rösten.

zoran 2005-06-09 09:12

Citat:

Ursprungligen postat av kullervo
Citat:

Originally posted by -hnn@Jun 8 2005, 11:07
Citat:

Ursprungligen postat av zoran
Min gissning är att bottar oftast är ganska dummprogramerade och knappast innehåller stöd för kakor överhuvudtaget. Vem orkar hacka en bott för röstfusk?
/Zoran


Varför ens koda in cookie stöd i en bot? :P

Oftast kolla man ifall kakan finns eller inte... Finns den inte, så genomförs röstningen...

#EDIT Stavfel..


Eller så gör man först ett cookitest som kollar om klienten klarar av cookies. Gör den inte det så godtas inte rösten.

Vilket jag skrev redan utförligt i tråden :)

/Zoran

Jonas 2005-06-09 15:55

Men ändå, låter som ett dumt förslag ändå att köra med cookies.

Jag vet ett antal personer som stängt av cookies i sina webläsare utav ren skär säkerhet.


Alla tider är GMT +2. Klockan är nu 08:13.

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