Ideeen voor anti-spam in webformulier

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

  • mpol
  • Registratie: September 2002
  • Laatst online: 15-06 22:26

mpol

root@localhost

Topicstarter
Ik ben maintainer van een gastenboek-plugin voor WordPress:
https://wordpress.org/plugins/gwolle-gb/
Inmiddels wordt het op 40.000 websites gebruikt en dat is leuk. Wat minder leuk is, is dat sinds een half jaar deze plugin en de 40.000 websites gericht aangevallen worden door spammers.
Er zitten een aantal anti-spam functies in, maar blijkbaar is het nog niet genoeg.

Mijn vraag is:
Wat zijn er nog meer voor goede ideeen om in te zetten tegen spam?

Wat ik al gebruik:
- Nonce: een code voor een invoerveld die 24 uur lang geldig is. De spammers omzeilen dit echter, waarschijnlijk door de pagina eerst op te halen en daarna de waarde in de $_POST mee te sturen.
- Honeypot: een leeg veld dat niet ingevuld mag worden. Wordt intussen 100% herkend en omzeild.
- Custom Quiz Vraag: Dit wordt ook omzeild, in ieder geval met de standaard vraag "12 + six" waar het antwoord 18 is. Wellicht als gebruikers een creatievere vraag stellen wordt het meer bruikbaar.
- CAPTCHA: Een heel eenvoudige heb ik in gebruik en deze wordt omzeild en steeds correct ingevuld.
- Akismet service: Werkt goed, maar niet compatible met de nieuwe GDPR.
- Stop Forum Spam service: Werkt goed, maar ook niet compatible met GDPR.
- Hashen van invoerveld ID en Name attribuut: Lijkt niet te werken, al wil ik het nog uitbreiden naar alle velden in het formulier. Ze kunnen simpelweg uitlezen welk veld op required staat en dat correct invullen.

Wat zijn nog opties die mogelijk zijn:
- Van alle velden van het formulier de ID en Name attributen hashen, al heb ik daar inmiddels weinig hoop op.
- Honeypot uitbreiden van enkel een tekstveld naar ook een checkbox. Eventueel nog een radioknop met vaste waarde. Maar als het tekstveld voor honeypot nu al niet werkt dan geeft dit me ook weinig hoop.
- reCAPTCHA: Wil ik eigenlijk bij vandaan blijven. Het advertentiebedrijf dat dit aanbiedt (Google) weet al veel te veel van ons allemaal. Er zijn meer redenen om het niet te gebruiken, zoals slechte (geen) ondersteuning, zeer gebruiksonvriendelijk wanneer cookies van derde partijen uitstaan, en soms gebruikers die in het rond gestuurd worden en er nooit door komen.
-CAPTCHAS.net: opnieuw een derde partij, maar in ieder geval niet Google.

Wat goede ideeen tegen spam zijn erg welkom.
Voor de duidelijkheid, het gaat hier niet om een website, maar om software voor 40.000 websites. De spammers hebben er wel wat moeite voor over.

https://timelord.nl


Acties:
  • 0 Henk 'm!

  • DJMaze
  • Registratie: Juni 2002
  • Niet online
  1. Delay: submit N seconden niet mogelijk (je vult immers formulier in).
  2. Encrypt data met public key (cookie?) en genereer hash https://developer.mozilla...cs/Web/API/Web_Crypto_API
    Deze werkt goed, ik zoek <form> in html en voeg via JavaScript een hidden input toe met waarde. Krijg bergen meldingen in de logs van xrumer en andere bots die mislukken
  3. woorden & uri blacklist (bijvoorbeeld: preg_match('/https?/') > 2 then block)
  4. blokkeer e-mail domains (mail.ru, etc.)
  5. etc. genoeg te bedenken

[ Voor 26% gewijzigd door DJMaze op 03-04-2018 15:57 ]

Maak je niet druk, dat doet de compressor maar


Acties:
  • 0 Henk 'm!

  • Rmg
  • Registratie: November 2003
  • Laatst online: 14:30

Rmg

Sowieso niet elke keer dezelfde custom quiz vraag stellen lijkt me.
Uitgebreidere/minder eenvoudige captcha lib.

Acties:
  • 0 Henk 'm!

  • BarôZZa
  • Registratie: Januari 2003
  • Laatst online: 12:43
Form genereren met Javascript houdt vaak een berg tegen (veel bots halen een pagina op, maar renderen het niet).

Ook zorgen dat de GB's niet gemakkelijk te vinden zijn in Google. Nu zoek ik op 'Write a new entry for the Guestbook', en krijg ik duizenden sites met dat gastenboekscript. Als de herkenbare dingen niet geïndexeerd worden, dan maak je het de spammers moeilijker, alhoewel ze nu natuurlijk al een aardige lijst met sites hebben opgebouwd.

Acties:
  • 0 Henk 'm!

  • mpol
  • Registratie: September 2002
  • Laatst online: 15-06 22:26

mpol

root@localhost

Topicstarter
Dank jullie wel.
Ik zal kijken of een en ander te integreren is.

https://timelord.nl


Acties:
  • 0 Henk 'm!

  • WeHoDo
  • Registratie: Augustus 2014
  • Laatst online: 28-07 21:42
Zit je spam wel in het formulier zelf en spammen ze niet via een lek in je script direct in de DB?

PSN: plexforce (ps4)


Acties:
  • 0 Henk 'm!

  • robertpNL
  • Registratie: Augustus 2003
  • Niet online
Honeypot: een leeg veld dat niet ingevuld mag worden. Wordt intussen 100% herkend en omzeild.
Is die hidden? Voeg anders eens drie input-fields met bekende namen "Address", "PostalCode" en "City" die niet worden getoond (gebruik geen type=hidden maar in style niet displayen). Deze moeten bij server post dan leeg zijn, dan is het geen spammer. Spammers willen die ook altijd invullen. Werkt bij mij altijd uitstekend.

Acties:
  • 0 Henk 'm!

  • mpol
  • Registratie: September 2002
  • Laatst online: 15-06 22:26

mpol

root@localhost

Topicstarter
Als ze rechtstreeks in de database kunnen komen dan is er meer mis en dan zullen er ook gehackte websites zijn. Daar zal ik dan vast iets van horen.
De spam wordt wel herkend door Akismet en Stop Forum Spam, maar die diensten zijn niet GDPR-compliant. Mijn code wordt dus wel doorlopen.
En ja, het is PHP, maar niet alles dat in PHP geschreven is dat is bij voorbaat lek :)

De honeypot is een tekstveld met "display:none" op de div eromheen. Het heette eerst gwolle_gb_subject, maar daar scannen de spammers vast op. Ik ben geen spammer, maar ik neem aan dat ze gewoon eindeloos pogingen wagen om de non-required velden niet in te vullen.
Maar inderdaad, de honeypot uitbreiden is inderdaad wel een idee.

https://timelord.nl


Acties:
  • 0 Henk 'm!

  • Harrie_
  • Registratie: Juli 2003
  • Niet online

Harrie_

⠀                  🔴 🔴 🔴 🔴 🔴

HTML5 oplossing:

code:
1
<div contenteditable="true">Input-veld</div>


En dan onsubmit met JS de inhoud van je divs meeposten

Hoeder van het Noord-Meierijse dialect


Acties:
  • 0 Henk 'm!

  • mpol
  • Registratie: September 2002
  • Laatst online: 15-06 22:26

mpol

root@localhost

Topicstarter
Dat is nieuw voor me. Ik zal het opzoeken.
Dankjewel.

https://timelord.nl

Pagina: 1