HTML interesse |
|
Hoi, ja wie heeft er tegenwoordig geen last van?
Om me te beveiligen maak ik gebruik van een rekensommentje, wat blijkbaar niet echt werkt. Als de som fout is voegt hij het bericht niet toe, maar de bot heeft zojuist een bericht kunnen posten dus ik snap niet waarom de bot erdoor kan.
http://chiroheikant.i-studios.be/TPL/guestbook.php
(Alle berichten van 'abc123' is een bot..)
functie:
<?
## Functie voor de lame kutspam bots tegen te gaan
function captcha() {
// Functie vereist een gestarte sessie!
if(session_id() == '') {
die("De AntiSpam functionaliteit voor formulieren kon niet worden gestart, uit veiligheidsoverwegingen is deze pagina uitgeschakeld");
}
// De cijfers waar de rekensom uit moet bestaan, plus het bijbehorende woord.
$cijfers = array(0 => "nul", 1 => "één", 2 => "twee", 3 => "drie", 4 => "vier", 5 => "vijf", 6 => "zes", 7 => "zeven", 8 => "acht", 9 => "negen");
$mogelijkheden = array(array("dummy", "dummy"), array("+", "plus"), array("-", "min"));
// Het eerste getal van de rekensom (random)
$first = rand(1,count($cijfers)-1);
$firstInt = $first;
$firstText = $cijfers[$first];
// De gebruikte somregel (random)
$second = rand(1,count($mogelijkheden)-1);
$secondInt = $mogelijkheden[$second][0];
$secondText = $mogelijkheden[$second][1];
// Het derde getal van de rekensom (random)
$third = rand(1,count($cijfers)-1);
$thirdInt = $third;
$thirdText = $cijfers[$third];
$tmpResult = '$result = '.$firstInt.$secondInt.$thirdInt.';';
eval($tmpResult);
// De sessie zetten
$_SESSION['result'] = $result;
// De rekensom voor de gebruiker teruggeven
return "Wat is ".$firstText." ".$secondText." ".$thirdText."?";
}
?>
<? ## Functie voor de lame kutspam bots tegen te gaan function captcha() { // Functie vereist een gestarte sessie! die("De AntiSpam functionaliteit voor formulieren kon niet worden gestart, uit veiligheidsoverwegingen is deze pagina uitgeschakeld"); } // De cijfers waar de rekensom uit moet bestaan, plus het bijbehorende woord. $cijfers = array(0 => "nul", 1 => "één", 2 => "twee", 3 => "drie", 4 => "vier", 5 => "vijf", 6 => "zes", 7 => "zeven", 8 => "acht", 9 => "negen"); // Het eerste getal van de rekensom (random) $firstInt = $first; $firstText = $cijfers[$first]; // De gebruikte somregel (random) $secondInt = $mogelijkheden[$second][0]; $secondText = $mogelijkheden[$second][1]; // Het derde getal van de rekensom (random) $thirdInt = $third; $thirdText = $cijfers[$third]; $tmpResult = '$result = '.$firstInt.$secondInt.$thirdInt.';'; // De sessie zetten $_SESSION['result'] = $result; // De rekensom voor de gebruiker teruggeven return "Wat is ".$firstText." ".$secondText." ".$thirdText."?"; } ?>
|