Hoe ga ik spam via formulieren tegen?

Door - -, 15 jaar geleden, 10.476x bekeken

Meerdere mogelijkheden om spam via formulieren tegen te gaan.

Gesponsorde koppelingen

Inhoudsopgave

  1. Inleiding
  2. Mogelijkheden
  3. Captcha’s
  4. Anti flood systemen
  5. Onzichtbare velden
  6. Reacties met bepaalde woorden blokkeren
  7. Reacties met (veel) links blokkeren
  8. Slot

 

Er zijn 22 reacties op 'Hoe ga ik spam via formulieren tegen'

PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen
Davy Jansen
Davy Jansen
15 jaar geleden
 
0 +1 -0 -1
Leuke, en goede tut.
Wel nog veel uitpluis werk voor de beginners, om alle juiste code's bij elkaar te gaan zoeken. Maar dat moet wel te doen zijn.

Bedankt voor het maken/delen. :)
- -
- -
15 jaar geleden
 
0 +1 -0 -1
Bedankt voor je compliment! Ik ben aan het overwegen om zelf alles even te gaan scripten en er een leuk pakketje van te maken, dat zie ik dan nog wel.
DDragonz
DDragonz
15 jaar geleden
 
0 +1 -0 -1
Leuke tut dit ga ik zeker nog gebruiken alleen een vraag over die Onzichtbare velden. Ik denk dat dit niet met 100% valid page + een goeie seo site kan ofwel?
- -
- -
15 jaar geleden
 
0 +1 -0 -1
Dit kan 100% valid (X)HTML en valid CSS, en het heeft verder weinig met SEO te maken.
Robert -
Robert -
15 jaar geleden
 
0 +1 -0 -1
Leuke en duidelijke tutorial.
Alles is goed te begrijpen en te maken.

Zelf snap ik alleen nog niet dat wat je in je slot vermeld:
Quote:
het is handig om twee functies aan te maken, ??ntje die je tussen de form tag echo?t, en dia een captcha, een onzichtbaar veld etc. neerzet, en een tweede functie alles in ??n keer checkt. Dat bespaart veel tijd en werk.


Ik zou niet weten hoe je dat moet doen, want ik werk ook nooit zoveel met functies.
Misschien dat google me hiermee verder helpen kan :).
Jan geen
Jan geen
15 jaar geleden
 
0 +1 -0 -1
Bravo mooie tut, paar opties had ik zelf eigenlijk nog nooit aan gedacht.
Robert Deiman
Robert Deiman
15 jaar geleden
 
0 +1 -0 -1
@Jonathan

Er zijn wel degelijk bots die kijken of een veld hidden is. (in ieder geval, wanneer het type hidden is) Wanneer je dit met css doet zou het goed moeten gaan. (zet de css niet in je html van het inputveld, maar houd het erbuiten)

Wat ook wel kan helpen is met css niet hidden te maken, maar zo klein te maken dat je hem niet ziet. (het is dan wel verstandig met tabindex te werken, om wanneer iemand tabt dit veld over te slaan)
1337h4x0r
1337h4x0r
15 jaar geleden
 
0 +1 -0 -1
hmm. Hoe werkt tabindex dan? ik heb nog nooit van tabindex gehoord :D

verder: goeie tut, Jonathan :O
- -
- -
15 jaar geleden
 
0 +1 -0 -1
Iedereen: bedankt voor de complimenten. Ik ga nu denk ik even wat korte codefragmenten schrijven en linken naar bestaande scripts.
Klaasjan Boven
Klaasjan Boven
15 jaar geleden
 
0 +1 -0 -1
Mooie tut Jonathan, inderdaad zijn de codesnippets een welkome anvulling, dat moet bij elkaar te ctrl c'en zijn :)

Klaasjan
Arend a
Arend a
15 jaar geleden
 
0 +1 -0 -1
Het gebruik van javascript kan ook het eea oplossen. Niet alle legacy browsers ondersteunen het. Maar de enige die ik kan bedenken die er legitiem last van kan hebben is lynx. En die doet het zowiezo niet met capcha's.

Maar door een form via een xmlhtmlrequest te versturen kunnen spambots dr ook iets minder mee, ze gaan namelijk niet allemaal javascript lopen uitvoeren.
Eric Cartman
Eric Cartman
15 jaar geleden
 
0 +1 -0 -1
En waar is Akismet?
Henk
Henk
15 jaar geleden
 
0 +1 -0 -1
Zoiets als dit zou dat met die hidden fields dan moeten worden?


15 jaar geleden
 
0 +1 -0 -1
Ik mis een nieuwe techniek die ik onlangs ergens 'in de vakliteratuur' uitgewerkt zag. Er werd bijgehouden hoe laat je op de 'formulier'-pagina kwam en hoe laat je het formulier verstuurde. Was de tijd te kort (laten we zeggen 10 sec.) dan werden de bezoekers doorverwezen naar een wacht pagina.
Robert -
Robert -
15 jaar geleden
 
0 +1 -0 -1
Dat is dan dus ongeveer het omgekeerde van anti-flood, of niet soms?
Joeri
Joeri
15 jaar geleden
 
0 +1 -0 -1
leuk, handig, leerzaam, toepasbaar en zeer veel vraag naar, kortom: PRACHTIGE TUTORIAL. Moest je die scriptjes nog toevoegen zou het echt een te gekke 100/100 tutorial zijn. Meer van dit. Vind dat de tutorials de laatste tijd sterk vooruit zijn gegaan, even denkend aan de tutorials van blanche enz... en dit in tegenstelling tot de scripts, met uitzondering van enkele natuurlijk.
Kees Kluskens
Kees Kluskens
14 jaar geleden
 
0 +1 -0 -1
Fijne tut maar NOG fijner als je er wat voorbeeld codes bij zet!
Jochem Verdonk
Jochem Verdonk
14 jaar geleden
 
0 +1 -0 -1
Precies! Heel fijne tutorial, die me de achtergrondinfo geeft die ik nodig had. Ik begrijp nu wat ik moet doen. Maar ik ben echt een beginner en ik heb geen idee hoe het moet... Kortom, in praktische zin ben ik nog niks verder.
Ceasar Feijen
Ceasar Feijen
14 jaar geleden
 
0 +1 -0 -1
He jochem ,
Hier een voorbeeldje die ik zelf vaak toepas

In je formulier neem je bijvoorbeeld volgende veld op

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?
<span class="hideword"><br />NB ! Deze niet invullen !!( is alleen tegen spam bedoeld ). Vul uw email adres in bij 'uw email adres'
<input name="emailadress" alt="NB ! Deze niet invullen !!" type="text" size="22" class="formulier_input" value="" /></span>
?>


In je style sheet neem je het volgende op

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?
.hideword {
    display: none;
}

?>


In de afhanding van je formulier plaats je het volgende

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?
        if($emailadress != "")
        {

           exit;
        }

?>


Als je op wilt opnemen blokkeren bij teveel geplaatste links kun je het volgende doen

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?
if (!$tekst || substr_count($tekst,"http://") > 2){
   echo "Te veel links geplaatst";
 }

?>


Nog even een opmerking waarom ik die tekst er bij geplaatst heb
<br />NB ! Deze niet invullen !!( is alleen tegen spam bedoeld ). Vul uw email adres in bij 'uw email adres'
Sommige screenreaders voor visueel gehandicapten kunnen niet goed overweg met css dus zal het in te vullen veld worden benoemd. Door deze tekst te plaatsen weten zij dus dat dit veld niet ingevuld moet worden.
Pim Willems
pim Willems
13 jaar geleden
 
0 +1 -0 -1
@ceasar, slim gedaan die niet invullen email.. denk dat ik die ook even als extra beveiliging op me site zet..
Karl Karl
Karl Karl
13 jaar geleden
 
0 +1 -0 -1
@ceasar: Ik plaats wel eens een stuk of 6 links, voornamelijk als onderbouwing op wat ik zeg / voorbeelden / achtergrond info.
Twee vind ik wat weinig.
PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen
Ceasar Feijen
Ceasar Feijen
13 jaar geleden
 
0 +1 -0 -1
Ik heb nog een leuke.
Deze werkt alleen als je js hebt aanstaan en veel robots hebben dat dus niet

Neem in de form action het volgende op
onsubmit="if(this['tellafriend']){this['tellafriend'].value='0';};

In je formulier maak je een hidden veld als volgt
<input name="tellafriend" type="hidden" id="tellafriend" value="1" />

Klik je nu op submit dan wordt de value dus op 0 gezet door de bovenstaande javascript

In de afhandeling kijk je of tellafriend 0 is zo niet dan is er iets niet goed gegaan

Bijv.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?
if($_POST['tellafriend'] == "1"){ echo '&nbsp;Er is iets niet goed gegaan !'; return; }
?>


@Karl
Dan maak je er toch 6 van :)

Om te reageren heb je een account nodig en je moet ingelogd zijn.

Inhoudsopgave

  1. Inleiding
  2. Mogelijkheden
  3. Captcha’s
  4. Anti flood systemen
  5. Onzichtbare velden
  6. Reacties met bepaalde woorden blokkeren
  7. Reacties met (veel) links blokkeren
  8. Slot

Labels

  • Geen tags toegevoegd.

PHP tutorial opties

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.