Mail script beveiligen

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Tom aan t Goor

Tom aan t Goor

09/01/2013 10:19:22
Quote Anchor link
Aangezien ik de laatste tijd veel last had van spam (met mijn contact formulier), heb ik me wat beter verdiept in de beveiliging hiervan.

Hieronder mijn script:

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
19
20
<?php
if(isset($_POST['send'])){
    if($_SESSION['time'] > (time()-60)){
        echo 'Je mag 1 mail per minuut sturen!';
    }
elseif($_POST['email'] != '' || $_POST['cap'] != $_SESSION['captcha']){
        echo 'Er ging iets fout!';
    }
else{
        echo 'De mail is gestuurd!';
        $_SESSION['time'] = time();
        mail("info@domein.nl", $_POST['onderwerp'], $_POST['bericht']);
    }
}

echo '<form method="post">
<input type="hidden" name="email">
Onderwerp: <input type="text" name="onderwerp"> <br>
Bericht: <input type="text" name="message"> <br>
<img src="captcha.php"> <input type="text" name="cap"> <br>
Verstuur: <input type="submit" name="send">
</form>'
;
?>


Info: Ik maak geen gebruik van een inlog systeem. Hierdoor kan je dus je cookie/sessie verwijderen waardoor de timer niet meer werkt.


Is dit goed beveiligd?
En hoe kan dit beter?
Gewijzigd op 09/01/2013 10:28:11 door Tom aan t Goor
 
PHP hulp

PHP hulp

26/01/2020 21:20:56
 
Mebus  Hackintosh

Mebus Hackintosh

09/01/2013 10:24:52
Quote Anchor link
Captcha is een goede oplossing..
 
- Ariën -
Beheerder

- Ariën -

09/01/2013 10:26:09
Quote Anchor link
Waar komen $onderwerp en $bericht vandaan?
 
Tom aan t Goor

Tom aan t Goor

09/01/2013 10:27:34
Quote Anchor link
Ik maakte ook gebruik van captcha, maar dat leverde alsnog spam op.
Ik maak nu ook gebruik van captcha zie regel 5 en 17

Toevoeging op 09/01/2013 10:28:52:

- Aar - op 09/01/2013 10:26:09:
Waar komen $onderwerp en $bericht vandaan?


Sorry, dit was fout gegaan met delen knippen voor het topic.
 
Mebus  Hackintosh

Mebus Hackintosh

09/01/2013 10:31:31
Quote Anchor link
Zie dat er ook nergens word gecheckt op de captcha.. Wie weet word het form wel vanaf een andere pagina verstuurd waar de captcha niet op staat :-)
 
No One

No One

09/01/2013 10:32:39
Quote Anchor link
@mebus, zie regel 5, maar idd..je moet wel kijken of de $_POST['cap'] wel verstuurd wordt.
 
Tom aan t Goor

Tom aan t Goor

09/01/2013 10:33:24
Quote Anchor link
Mebus Hackintosh op 09/01/2013 10:31:31:
Zie dat er ook nergens word gecheckt op de captcha.. Wie weet word het form wel vanaf een andere pagina verstuurd waar de captcha niet op staat :-)


In regel 5 wordt gecontroleerd of dit overeenkomt met wat er in de session staat.
 
Mebus  Hackintosh

Mebus Hackintosh

09/01/2013 10:44:07
Quote Anchor link
Sorry, ik zie het :-) Als je nog steeds veel spam krijgt kan je misschien bijhouden hoevaak het formulier vanaf een bepaald ip adres word verstuurd? Dus 1 keer per 5 minuten per ip adres.
 
Tom aan t Goor

Tom aan t Goor

09/01/2013 10:46:19
Quote Anchor link
Mebus Hackintosh op 09/01/2013 10:44:07:
Sorry, ik zie het :-) Als je nog steeds veel spam krijgt kan je misschien bijhouden hoevaak het formulier vanaf een bepaald ip adres word verstuurd? Dus 1 keer per 5 minuten per ip adres.


Wat is de beste manier hiervoor?
Bijhouden in een database?
 

09/01/2013 15:20:45
Quote Anchor link
Captcha. Dit is makkelijk te implementeren en werkt veel beter. Anders krijg je alsnog spam, alleen dan niet zo vaak.

http://www.google.com/recaptcha
 
No One

No One

09/01/2013 15:32:32
Quote Anchor link
@Danny daar maakt ie dus al gebruik van...
 



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.