[security] hoe voorkom je spam bij online forms?

Pagina: 1
Acties:

  • Sturm
  • Registratie: November 2002
  • Laatst online: 27-03-2025
Stel ik heb een website met een online form. Met behulp van een simpel script is het mogelijk om zo'n formulier duizenden keren automatisch in te vullen en te submitten, wat kan leiden tot zowel DDoS attacks als een zwaar vervuilde database vol met spam.

Hoe voorkom je zoiets?

Het automatisch genereren van een plaatje met telkens wisselende tekst, nummers en tekens die een gebruiker ter bevestiging in moet voeren voordat hij het form submit is een optie die ik al heb, maar ik ben op zoek naar iets dat gebruikersvriendelijker is.

Ik zit zelf te denken aan een soort time-out mechanisme dat je na het indienen van een formulier gedurende een bepaalde periode datzelfde formulier niet nogmaals kunt submitten, maar wellicht is er ook iets veel simpelers... mensen met ideeen hierover?

Alvast bedankt!

It's better to have loved and lost, then to have never loved at all


Verwijderd

Tijdens het submitten van de data in de database een tijd en ip adres meegeven.

en natuurlijk voordat je een nieuwe reply post eerst checken of dat IP adres een tijd geleden(zie: tijd) nog iets anders heeft gepost.

  • Macros
  • Registratie: Februari 2000
  • Laatst online: 12-08 20:57

Macros

I'm watching...

Inderdaad, wat je zelf al zegt.
Ikzelf heb zoiets ook een keer gemaakt. Users moesten berichten achter kunnen laten in een Counter-Strike server. Maar de spelers mochten niet dood gespammed worden.
Dus om dat te voorkomen zijn er een aantal regels die ik check met php:
Users mogen maar 5 berichten sturen per dag (van 0:00 tot 23:59).
Users moeten geregistreerd zijn.
Er moeten minimaal 5 minuten tussen 2 berichten zitten.

Het is al lastiger een spam script te realiseren als je ingelogt moet zijn.
Na 5 submits kan je db niet meer voller raken per dag. Eventueel kan je meer of strengere regels invoeren.

"Beauty is the ultimate defence against complexity." David Gelernter


  • swampy
  • Registratie: Maart 2003
  • Laatst online: 25-03 09:06

swampy

Coconut + Swallow = ?

Veel moderaters...VEEL moderators!

Okay, niet ieder lid moet die rechten krijgen maar je moet het mogelijk maken om binnen 24 uur de spammer te bannen en de postings te verwijderen! Dus een smal forum heeft al zo'n 2 a 3 personen met genoeg rechten nodig!

There is no place like ::1


  • samo
  • Registratie: Juni 2003
  • Laatst online: 21-08 13:14

samo

yo/wassup

Misschien een id.
Bij iedere post een random code in een database webschrijven. Bij het posten deze code verwijderen. Dan kan je niet meer dan eens de zelfde pagina posten.
Wel een timestamp erbij ofzo, dat je oude niet gebruikte codes kan verwijderen. En in die timestamp genoeg tijd geven om te posten :-)

Bekend van cmns.nl | ArneCoomans.nl | Het kindertehuis van mijn pa in Ghana


  • blender
  • Registratie: Juni 2001
  • Niet online
Ik snap niet zo goed wat er niet gebruikersvriendelijk is aan het genereren van een plaatje met nummers die je over moet kloppen. Tsja, voor blinden en slechtzienden zal het misschien onmogelijk zijn, maar dat is een keuze die je moet maken. Een van de trieste gevolgen van spam... :(

  • Sturm
  • Registratie: November 2002
  • Laatst online: 27-03-2025
Blender: de gebruikers zijn in dit geval burgers van een Nederlandse gemeente die via internet elektronische formulieren in moeten kunnen vullen om verhuisaangiftes te doen, aangifte te doen van hondenbelasting, etc.

De klant (de gemeente dus) heeft aangegeven dat het geen optie is om automatisch gegenereerde plaatjes met letters, cijfers en tekens te gebruiken. Daar wil je een burger immers niet mee vermoeien, een burger moet gewoon het formulier in kunnen vullen, op "Verzenden" rammen en dan klaar zijn, en niet ook nog 5 minuten bezig zijn met het ontcijferen van zo'n plaatje en het overtypen van de gegenereerde 13-karakterige code ;-)

Swampy: het ging dus om online forms en niet om online forums met moderators, maar thanks voor de suggestie anyway :-)

'k denk dat ik effe verder ga puzzelen met de opmerkingen van Macros en Samo-Arne en kijk of ik daar iets mee kan verzinnen... thanks iig!

It's better to have loved and lost, then to have never loved at all


  • supakeen
  • Registratie: December 2000
  • Laatst online: 09-09-2025
Sturm schreef op 08 augustus 2003 @ 17:21:
Blender: de gebruikers zijn in dit geval burgers van een Nederlandse gemeente die via internet elektronische formulieren in moeten kunnen vullen om verhuisaangiftes te doen, aangifte te doen van hondenbelasting, etc.

De klant (de gemeente dus) heeft aangegeven dat het geen optie is om automatisch gegenereerde plaatjes met letters, cijfers en tekens te gebruiken. Daar wil je een burger immers niet mee vermoeien, een burger moet gewoon het formulier in kunnen vullen, op "Verzenden" rammen en dan klaar zijn, en niet ook nog 5 minuten bezig zijn met het ontcijferen van zo'n plaatje en het overtypen van de gegenereerde 13-karakterige code ;-)

Swampy: het ging dus om online forms en niet om online forums met moderators, maar thanks voor de suggestie anyway :-)

'k denk dat ik effe verder ga puzzelen met de opmerkingen van Macros en Samo-Arne en kijk of ik daar iets mee kan verzinnen... thanks iig!
Met dit soort formulieren is het meestal maar 1x nodig per leven op een ip dus je zit behoorlijk veilig :)

  • Opi
  • Registratie: Maart 2002
  • Niet online

Opi

Gezien een paar voorstellen zou ik dan het volgende stukje in psuedo code schrijven:
code:
1
2
3
4
5
6
7
8
9
10
11
12
timeoffset = 50;
randomtime = [-5, 5];
timetopost = timeoffset + randomtime;

standardtext = "visit gathering.tweakers.net";
randomtext = [a,z];
post = standardtext + randomtext

if time == timetopost
{
     post;
}


offtopic:
Excused voor deze heikneuterige pseudo code

Verwijderd

Wat dachten jullie van het checken op ...... tadaaa... tromgeroffel....... een simpele referer?

  • dingstje
  • Registratie: Augustus 2002
  • Laatst online: 02-01-2024
Verwijderd schreef op 08 August 2003 @ 18:57:
Wat dachten jullie van het checken op ...... tadaaa... tromgeroffel....... een simpele referer?
Wat dacht je van in je programma zelf de Referrer header mee te geven?

If you can't beat them, try harder


Verwijderd

dingstje schreef op 08 August 2003 @ 19:33:
[...]


Wat dacht je van in je programma zelf de Referrer header mee te geven?
Een kale referer natuurlijk wel, maar een beveiligde referer... die moeite nemen ze niet eens om te faken.

  • Erkens
  • Registratie: December 2001
  • Niet online

Erkens

Fotograaf

Verwijderd schreef op 08 August 2003 @ 22:56:
[...]


Een kale referer natuurlijk wel, maar een beveiligde referer... die moeite nemen ze niet eens om te faken.
en dan kunnen veel mensen er geen gebruik van maken omdat browsers die niet mee sturen of verwijderd worden uit de headers door sommige firewall software ;)

  • memphis
  • Registratie: Oktober 2000
  • Laatst online: 12:27

memphis

48k was toen meer dan genoeg.

http://www.scriptarchive.com/formmail.html

Is een formscript waarin je alleen bep. domeinen kunt aangeven waar naar toe gemaild mag worden.

Er zijn mensen die mij een GOD vinden


Verwijderd

Erkens schreef op 08 August 2003 @ 22:59:
[...]

en dan kunnen veel mensen er geen gebruik van maken omdat browsers die niet mee sturen of verwijderd worden uit de headers door sommige firewall software ;)
Een beveiligde url bestaat simpelweg uit een code die gegenereerd wordt en voor de server decodeerbaar is. Die parameters worden niet zomaar verwijderd.

  • We Are Borg
  • Registratie: April 2000
  • Laatst online: 13:08

We Are Borg

Moderator Wonen & Mobiliteit / General Chat
swampy schreef op 08 augustus 2003 @ 16:27:
Veel moderaters...VEEL moderators!

Okay, niet ieder lid moet die rechten krijgen maar je moet het mogelijk maken om binnen 24 uur de spammer te bannen en de postings te verwijderen! Dus een smal forum heeft al zo'n 2 a 3 personen met genoeg rechten nodig!
Ze hebben het hier over forms en niet over een forums :)

  • crisp
  • Registratie: Februari 2000
  • Laatst online: 14:11

crisp

Devver

Pixelated

Het systeem van een challenge meesturen en terugverwachten is geloof ik nog steeds de beste methode van beveiliging. Enige nadeel is dat de client cookies moet accepteren (in ieder geval sessie-cookies).
Een spammert moet dan al a) elke keer een nieuwe request doen naar de server voor de nieuwe challenge, en b) elke keer zijn cookies trashen omdat na de 1e keer posten van het formulier je er natuurlijk in de sessie voor zorgt dat er niet nog een keer gepost kan worden.
Combineer dit eventueel met opslaan van tijd/ip/browserstring/whatever in een database en je maakt het een hacker al heel erg moeilijk; een scriptkiddie begint hier in elk geval al niet aan :)

Intentionally left blank


Verwijderd

Hoeveel bezoekers zal je form trekken? Hoe groot is de kans dat iemand zoiets doet? Ik denk hooguit een jochie dat stoer wil doen t.o.v. zijn vriendjes, maar iemand met verstand van zaken zal een formpje van een gemeente vast niet als belangrijk beschouwen.

Een simpele controle lijkt me dan ook voldoende. Bijvoorbeeld bij het bezoeken van de invoer pagina een tijd en een random nummer opslaan in de database (dit random nummer in een formpje plaatsen) en vervolgens bij het submitten controleren of er minstens een aantal seconden tussen zit.

  • Boss
  • Registratie: September 1999
  • Laatst online: 10:17

Boss

+1 Overgewaardeerd

Ik zou hier ook een kosten - baten afweging maken. Denk je echt dat mensen dat gaan doen? Ik ken zelf ook wel wat sites met form-mogelijkheden, maar veel last van vervuiling is daar niet.

Eventueel maak je toch een hoop velden verplicht? Kan je in ieder geval niet 100x op submit drukken.

The process of preparing programs for a digital computer is especially attractive, not only because it can be economically and scientifically rewarding, but also because it is an aesthetic experience much like composing poetry or music.


  • Coolhva
  • Registratie: Juni 2003
  • Laatst online: 02-08 09:32

Coolhva

Dr. Zero Trust

En misschien kan je een cross reference maken naar bijv. straat naam en postcode etc.

  • GlowMouse
  • Registratie: November 2002
  • Niet online
- alles over HTTPS laten gaan
- een sessievariabele aanmaken met daarin de tijd van de laatste post
- IP adreslijst
- e-mailverficatie => iemand een e-mailadres in laten vullen, daar automatisch een mailtje heensturen met een link met een code, en pas als er op die link geklikt is het form submitten, niet gesubmitte forms na een dag purgen
Pagina: 1