Pagina 1 van 1
Webform met spambeveiliging
Geplaatst: 18 sep 2007, 12:56
door Djorre
Ik zou hier voor mijn site een simpele webform willen maken maar toch wel met enige beveiliging tegen spam. Ik heb bijna geen php en scripting kennis. Ik had ondertussen wel al een voorbeeld gevonden met captcha maar ik versta niet goed hoe ik dit kan achter mijn verzendknop kan steken.
Heeft er iemand een voorbeeldje liggen of weet er iemand een andere werkwijze?
Alvast bedankt
Jo
Geplaatst: 18 sep 2007, 14:13
door crapiecorn
Simpel eigenlijk, captcha gaat random wat cijfer als letter genereren en via gd een image er van maken. Als je dan op submit drukt moet je controleren als de ingegeven code gelijk is aan de oorspronkelijke cijfers en letter. Als dit zo is (if(bla == bla) laat je je form verdergaan, als dit niet zo is (else) laat je een message zien dat de ingegeven chars niet overeen komen.
Geplaatst: 18 sep 2007, 14:16
door Djorre
crapiecorn schreef:Simpel eigenlijk, captcha gaat random wat cijfer als letter genereren en via gd een image er van maken. Als je dan op submit drukt moet je controleren als de ingegeven code gelijk is aan de oorspronkelijke cijfers en letter. Als dit zo is (if(bla == bla) laat je je form verdergaan, als dit niet zo is (else) laat je een message zien dat de ingegeven chars niet overeen komen.
Ik vermoed dat dit dan wel via een php script zal moeten gaan en niet via een standaard form van frontpage?
Geplaatst: 18 sep 2007, 14:21
door crapiecorn
Djorre schreef:crapiecorn schreef:Simpel eigenlijk, captcha gaat random wat cijfer als letter genereren en via gd een image er van maken. Als je dan op submit drukt moet je controleren als de ingegeven code gelijk is aan de oorspronkelijke cijfers en letter. Als dit zo is (if(bla == bla) laat je je form verdergaan, als dit niet zo is (else) laat je een message zien dat de ingegeven chars niet overeen komen.
Ik vermoed dat dit dan wel via een php script zal moeten gaan en niet via een standaard form van frontpage?
Ja, mijn voorkeur gaat naar php. Maar forms behandelen kan je in elke web gebaseerde programmeertaal.
Geplaatst: 18 sep 2007, 15:00
door ubremoved_539
Djorre schreef:Ik vermoed dat dit dan wel via een php script zal moeten gaan en niet via een standaard form van frontpage?
Dergelijke controle moet inderdaad altijd server side gebeuren omdat veel spammers tools gebruiken die je form zelfs niet aanspreken maar rechtstreeks de rommel posten.
Geplaatst: 18 sep 2007, 18:26
door Astralon
Geplaatst: 19 sep 2007, 00:09
door Ofloo
Code: Selecteer alles
if (!extension_loaded("session")) {
die("Coudn't locate the required session module.");
};
session_start();
function gen($length) {
$r = NULL;
for($i=0; $i<$length; $i++) {
while($i < $length) {
$rand = rand(48,122);
if((($rand >= 48) && ($rand <= 57)) || (($rand >= 65) && ($rand <= 90)) || (($rand >= 97) && ($rand <= 112))) {
break;
};
};
$r .= sprintf("%c",$rand);
};
return($r);
};
$_SESSION['secret'] = gen("6");
header("Content-type: image/png");
$image = imagecreatefrompng("validate_bg.png");
$tc = imagecolorallocate($image, 73, 81, 92);
imagestring($image,5,5,2,$_SESSION['secret'],$tc);
imagepng($image);
imagedestroy($image);
dan moet je alleen nog een validate_bg.png om de achtergrond, en $_SESSION['secret'] vergelijken met form input.
Ik weet niet of het de beste manier is, maar het werkt en 'k heb het een lange tijd geleden geschreven.
code wegschrijven in php file en gewoon aanroepen als een image in html.
Geplaatst: 19 sep 2007, 01:34
door Snakehit