Form beveiligen tegen spam. Hoe?
Spike Spade
01/10/2009 09:36:00Zoals 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
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
22/12/2024 08:18:44SilverWolf NL
01/10/2009 10:41:00Toine vd P
01/10/2009 10:49:00Cptcha inderdaad, en je kunt met het $_SERVER['HTTP_REFERER'] variabel kijken waarvandaan er gepost wordt.
Registreren voor het posten is natuurlijk ook een optie.
Registreren voor het posten is natuurlijk ook een optie.
Jan-Jelle Kester
01/10/2009 13:07:00Wat ik zelf altijd doe is eigenlijk vrij simpel, veilig (volgens mij) en gebruikers ondervinden geen hinder van de captcha.
In het formulier zet ik dan een hidden field met als naam 'verify-hash' en als waarde .
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!!
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
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
}
?>
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 .
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