WN

WN (https://www.wn.se/forum/index.php)
-   Serversidans teknologier (https://www.wn.se/forum/forumdisplay.php?f=4)
-   -   Undvika "spam-bots", CSRF och andra äckligheter (https://www.wn.se/forum/showthread.php?t=1039563)

qson 2009-12-11 14:44

Undvika "spam-bots", CSRF och andra äckligheter
 
Hej!
Har ett formulär där man kan söka om domäner finns tillgängliga.
Jag känner att jag bör skydda den från "automatiserade" förfrågningar, spam-bots och andra konstigheter som typ CSRF och liknande.
Bygger formuläret som en komponent i Joomla, så jag har använt deras JRequest::checkToken som ger ett grunläggande skydd mot direktanrop.
Sedan har jag en dold <input type="text"> som kontrolleras att den är tom vid postning.

Min sökmotor tar emot POST-formuläret, genomför sökningen, lagrar den i $_SESSION, och skickar besökaren till resultatsidan som läser $_SESSION för att skriva ut resultatet.
Det innebär att man inte kan (genom att skriva en url) komma till resultatsidan utan att skicka ett giltigt formulär.

Vet inte om detta är rätt väg att gå, men det känns hyffsat tycker jag.

SimonP 2009-12-12 08:30

Det är enkelt att automatisera sökningar trots att man använder sessionsvariabler. Bättre att använda Captcha, eller att göra en helt egen sessionshantering där man sätter begränsningar per IP-nr. På vilket sätt skulle checkToken skydda mot direktanrop? Mig veterligen skyddar det enbart mot CSRF.

qson 2009-12-12 11:51

Citat:

Ursprungligen postat av SimonP (Inlägg 20335183)
Det är enkelt att automatisera sökningar trots att man använder sessionsvariabler. Bättre att använda Captcha, eller att göra en helt egen sessionshantering där man sätter begränsningar per IP-nr. På vilket sätt skulle checkToken skydda mot direktanrop? Mig veterligen skyddar det enbart mot CSRF.

checkToken sätter en random sträng i session, och skickar den med formuläret. Om denna token inte stämmer med den i session är något fel.
Det kräver att man först hämtar formulärsidan, lagrar cookies och de fält som finns i formuläret för att sedan skicka dem med egna värdet. Vet inte hur sofistikerade dessa spam-bots är, så detta kanske är en "för enkel" lösning.

Jag vill bara undvika så ingen "pollar" min sida för att kolla om domäner är lediga. Inget mer än så...

SimonP 2009-12-12 12:14

Citat:

Ursprungligen postat av qson (Inlägg 20335194)
Det kräver att man först hämtar formulärsidan, lagrar cookies och de fält som finns i formuläret för att sedan skicka dem med egna värdet

Exakt, och det är detta som jag menar är enkelt att kringgå, checkToken skyddar inte mot Botar.

Citat:

Vet inte hur sofistikerade dessa spam-bots är, så detta kanske är en "för enkel" lösning.
Jag vill bara undvika så ingen "pollar" min sida för att kolla om domäner är lediga. Inget mer än så...
Det går att göra mkt intelligenta botar. De enda skydd som funkar bra är captcha eller IP-begränsningar. Men det är bara att ha koll på besöksloggarna, det är ju inte säkert att du behöver lägga in något riktigt skydd.

qson 2009-12-12 12:19

Citat:

Ursprungligen postat av SimonP (Inlägg 20335197)
Exakt, och det är detta som jag menar är enkelt att kringgå, checkToken skyddar inte mot Botar.

Det går att göra mkt intelligenta botar. De enda skydd som funkar bra är captcha eller IP-begränsningar. Men det är bara att ha koll på besöksloggarna, det är ju inte säkert att du behöver lägga in något riktigt skydd.

Nä, det känns som det är overkill med för många spam-kontroller som ändå kanske inte funkar. Nästa steg är beställningsformuläret, men där är det ju betalning med så där blir det väl inte så mkt spam ;)

Slacker 2009-12-13 07:37

Jag använder bbantispam, som spamskydd och den skall vara säker mot botar, eftersom man svarar på en fråga. Jag har inte haft ett enda spam sedan jag installerade den för 3 år sedan. Fördelen är att har man besvarat frågan rätt en gång, så behöver man inte besvara den fler gånger.
http://www.bbantispam.com/


Alla tider är GMT +2. Klockan är nu 07:47.

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