Form beveiligen tegen spam. Hoe?

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Spike Spade

Spike Spade

01/10/2009 09:36:00
Quote Anchor link
Zoals het topic al zegt, wil ik mijn formulieren beveiligen tegen spambots.

Ik check nu al of de $this->session->valid_script != $_SERVER['SCRIPT_FILENAME']

Dus wanneer er een post van buitenaf gemaakt word op mijn action url, en ze hebben geen sessie, dan word dit opgevangen.

Maar er zijn vast nog veel werkende suggesties hier
 
PHP hulp

PHP hulp

22/12/2024 08:18:44
 
SilverWolf NL

SilverWolf NL

01/10/2009 10:41:00
 
Toine vd P

Toine vd P

01/10/2009 10:49:00
Quote Anchor link
Cptcha inderdaad, en je kunt met het $_SERVER['HTTP_REFERER'] variabel kijken waarvandaan er gepost wordt.

Registreren voor het posten is natuurlijk ook een optie.
 
Jan-Jelle Kester

Jan-Jelle Kester

01/10/2009 13:07:00
Quote Anchor link
Wat ik zelf altijd doe is eigenlijk vrij simpel, veilig (volgens mij) en gebruikers ondervinden geen hinder van de captcha.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php

session_start();

if((strtoupper($_SERVER['REQUEST_METHOD']) == 'POST') && ($_POST['verify-hash'] == $_SESSION['verify-hash'])) {

   // script voor verwerken van form data

   unset($_SESSION['verify-hash']); // zodat je volgende keer weer kan gebruiken

} else {

   $randomhash = md5(mt_rand(1000000000,9999999999)); // genereer een hash van een random 10-cijferig getal
   $_SESSION['verify-hash'] = $randomhash; // random hash opslaan in sessie

}

?>


In het formulier zet ik dan een hidden field met als naam 'verify-hash' en als waarde
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php echo $randomhash; ?>
.

Volgens mij is dit vrij veilig, zeker in combinatie met het controleren van de referer. Maar misschien denkt iemand anders er anders over? Ik hoor het graag!!
Gewijzigd op 01/01/1970 01:00:00 door Jan-Jelle Kester
 



Overzicht Reageren

 
 

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.