Bots omzeilen beveiliging formulieren

Pagina: 1
Acties:

  • uwmoeder
  • Registratie: Augustus 2005
  • Laatst online: 12-07 10:04
Ik heb sinds twee jaar een inschrijvingsforumulier voor de scouts online staan. Nog nooit last gehad van spambots die dit formulier invulde.
maar sinds twee dagen krijg ik 2 mails per uur van dezelfde bot.
De soort beveiligingen die ik er had ingestoken zijn 1. alles moet ingevuld zijn 2.het e-mailadres moet de volgende vorm hebben iets@iets.iets 3. postcode kan alleen uit nummers bestaan.
Dit bleek ze een hele tijd tegen te houden, maar nu omzeilen ze de laatste beveiliging. Terwijl als je op de site geen cijfers bij postcode invult hij wel een notification geeft. Maar dit belet niet op het formulier te valideren, heeft iemand hier een optie voor om de validatie wel te blokeren indien er geen cijfers staan bij postcode?

  • Dutch2007
  • Registratie: September 2005
  • Laatst online: 24-09 10:39
captcha inbouwen?

google vindt het volgende bijv..

http://www.sitemasters.be...ls/tutorials&cat=4&id=463

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
<?PHP 
error_reporting (E_ALL); // fouten weergeven 

$code = 'D5KP9'; // even een testcode aanmaken 
$image = imagecreatetruecolor (300, 60); // maakt de image met de groote van 300px breed, en 60px hoog 
$aFonts = array ('font1.ttf', 'font2.ttf', 'font3.ttf', 'font4.ttf'); // zet alle beschikbare fonts in een array 
$aCode = str_split ($code); // zet alle karakters apart in een array 

for ($i = 0; $i < count ($aCode); $i++) // een for-lus maken voor het aantal karakters dat de $aCode array bevat 
{ 
   $fontcolor = imagecolorallocate ($image, // kleurencombinatie maken voor de image variabel ($image) 
      rand (190, 255), // rood, 
      rand (190, 255), // groen, 
      rand (190, 255)); // blauw, deze geven de nieuwe kleur per karakter 
   if (count ($aCode) == 4) // de volgende locaties (x-as) aanmaken voor een code van 4 karakters lang 
   { 
      $pos[0] = rand (15, 55); // locatie aanmaken (x-as) voor de eerste karakter 
      $pos[1] = rand (80, 120); // locatie aanmaken (x-as) voor de tweede karakter 
      $pos[2] = rand (145, 185); // locatie aanmaken (x-as) voor de derde karakter 
      $pos[3] = rand (210, 250); // locatie aanmaken (x-as) voor de vierde karakter 
   } 
   if (count ($aCode) == 5) // de volgende locaties (x-as) aanmaken voor een code van 5 karakters lang 
   { 
      $pos[0] = rand (10, 45); // locatie aanmaken (x-as) voor de eerste karakter 
      $pos[1] = rand (65, 100); // locatie aanmaken (x-as) voor de tweede karakter 
      $pos[2] = rand (120, 155); // locatie aanmaken (x-as) voor de derde karakter 
      $pos[3] = rand (175, 210); // locatie aanmaken (x-as) voor de vierde karakter 
      $pos[4] = rand (230, 265); // locatie aanmaken (x-as) voor de vijfde karakter 
   } 
   imagettftext ($image, // image voorbereiden voor de image variabel ($image) 
   rand (14, 18), // fontgrootte, willekeurig getal laten kiezen tussen de 13 en 19 
   rand (-30, 30), // draaihoek, willekeur getal laten kiezen tussen de -31 en de 31 
   $pos[$i], // karakter positie breedte toewijzen, hebben we al voorbereid ($pos[]) 
   rand (50, 20), // karakter positie hoogte, kiezen tussen de 51 en de 19 
   $fontcolor, // fontkleur toewijzen, hebben we al voorbereid ($fontcolor) 
   $aFonts[rand (0, 3)], // font, willekeurig font toewijzen uit de array ($aFonts) 
   $aCode[$i]); // code toewijzen, op volgorde van de array 
} 
imagepng ($image, 'captcha.png'); // de .png image aanmaken als captcha.png 
imagedestroy ($image); // de handel afronden, en klaar! 
?>

[ Voor 98% gewijzigd door Dutch2007 op 31-01-2007 11:55 ]


Verwijderd

Als het dezelfde bot is continu, waarom niet gewoon bannen in je htaccess?

  • Voutloos
  • Registratie: Januari 2002
  • Niet online
Dit bleek ze een hele tijd tegen te houden, maar nu omzeilen ze de laatste beveiliging.
Nee, je moet OOK serverside user input controleren, niet alleen maar clientside middels een javascriptje.

{signature}


  • Rekcor
  • Registratie: Februari 2005
  • Laatst online: 08-10 13:03
Ik zou een CAPTCHA image erbij zetten. Dus dat je een plaatje ziet met een getal/code, die de gebruiker dan in moet vullen. Voor bots is het veel moeilijker om tekst uit een plaatje te halen.

Zie bijv. http://www.phphulp.nl/php/scripts/8/428/

  • _JGC_
  • Registratie: Juli 2000
  • Nu online
Je hebt je validatie in javascript gedaan. Simpelweg uitzetten van javascript zal je validatie omzeilen, tenzij je verwerkend PHP script ook validatie doet.

  • uwmoeder
  • Registratie: Augustus 2005
  • Laatst online: 12-07 10:04
Ik wil het zo gebruiksvriendelijk houden, dus liever geen captcha.

edit: eerst ff verdere uitleg lezen

[ Voor 8% gewijzigd door uwmoeder op 31-01-2007 11:56 ]


  • Joolee
  • Registratie: Juni 2005
  • Niet online
uwmoeder schreef op woensdag 31 januari 2007 @ 11:55:
[...]

Ik wil het zo gebruiksvriendelijk houden, dus liever geen captcha.

edit: eerst ff verdere uitleg lezen
Zet een form veld dmv css een paar duizend px buiten het scherm en noem deze bijv. 'mobiel nummer'
als deze ingevult word weet je zeker dat het een bot is en kun je hem een 404 of 403 error geven (serverside, dus niet iets met javascript proberen)
je kunt ook simpel display: none; oid gebruiken maar daarvan is de kans groter dat een bot het ontdekt

Verwijderd

Zoals _JGC_ al zei, je formulier gebruikt alleen javascript validatie. Javascript is clientside en bots voeren dit dus niet uit. Vandaar dat ze er zo makkelijk door komen. Stap over op serverside validatie en als dit nog niet helpt dan gebruik captcha

  • André
  • Registratie: Maart 2002
  • Laatst online: 14:48

André

Analytics dude


  • bonzz.netninja
  • Registratie: Oktober 2001
  • Laatst online: 01-12 19:17

bonzz.netninja

Niente baffi

wij hebben de captcha alleen in de vorm van een vraag die toch iedereen wel weet (wat is de naam van de blauwe vogel in sesamstraat). Dat werkt opmerkelijk goed, en is lekker laagdrempelig

vuistdiep in het post-pc tijdperk van Steve  | Joepie joepie. Dat ging echt toppie! | https://www.dedigitaletuin.nl


  • uwmoeder
  • Registratie: Augustus 2005
  • Laatst online: 12-07 10:04
Ik ken er dus niet zo veel van, dit wordt weer googlen :D.
Ik denk dat ik het formulier dan gewoon even offline(wordt toch alleen maar gebruikt van september-december) haal en na de vakantie hier een oplossing voor zoek.

Verwijderd

Ik denk dat het serverside checken op dit moment al voldoende voldoet! Geef gewoon een foutmelding als het veld serverside niet blijkt te kloppen.

Ben zelf ook geen voorstander van Captcha's, ze zijn hopeloos irritant, soms bijna niet te ontrafelen, vaak eenvoudig via OCR alsnog te misbruiken.
Pagina: 1