56 lines
3.3 KiB
Markdown
56 lines
3.3 KiB
Markdown
# Formulaire de contact en php avec mesures antispam (contactphpantibot)
|
|
|
|
Ceci est un "hook" php afin d'ajouter un formulaire de contact en php sur des sites basiques. Il intègre quelques protections pour limiter le spam, sans passer par des captchas ou des ressources coûteuses en temps de calcul. Ça reste assez basique.
|
|
|
|
Ouais, du php. Na.
|
|
|
|
J'ai découpé en plusieurs fichiers, sans doute que ça peut se condenser. Je ne suis pas dev, il est donc possible que ce soit très foireux. Toute aide pour améliorer est bienvenue.
|
|
|
|
## Installation
|
|
Copiez les fichiers php là où vous voulez sur votre site. Vérifiez les chemins (je pourrais améliorer ça dans la config ; on verra à l'usage). Incluez "form.php" où vous voulez sur une de vos pages php :
|
|
|
|
<?php
|
|
include 'form.php';
|
|
?>
|
|
|
|
Le script utilise la fonction mail de php, donc faut avoir php ET de quoi envoyer des mails sur votre serveur. Moi, j'utilise msmtp (https://alinea.ninm.net/dokuwiki/pratique:informatique:mail_relai ), c'est bien, simple et facile.
|
|
|
|
## Configuration
|
|
Modifiez le fichier "form_config.php" pour adapter à vos propres paramètres. En particulier le mail...
|
|
|
|
## Personnalisation et multilingue
|
|
Modifiez "form_lang.php" pour personnaliser les messages, voir ajouter des langues.
|
|
|
|
"form_struct.php" concerne le formulaire "presque" html. Ajoutez les classes de votre site web.
|
|
|
|
Non, je n'inclue pas de css, faut que ce soit cohérent avec les sites, donc : débrouillez-vous.
|
|
|
|
C'est aussi là qu'il y a la liste des questions parce que si c'est multilingue, c'est mieux de traduire vos questions, justement.
|
|
|
|
## Mesures antispams
|
|
### Honeypot
|
|
Il y a une case qui peut être cochée mais invisible (en principe) pour les êtres humains. Je ne sais pas trop si les lecteurs d'écran risquent de la voir donc j'ai ajouté une description.
|
|
|
|
Les bots les plus basiques vont soit tout cocher, soit rien. Or il faut laisser décoché la case "je suis un bot" et cocher "je suis un être humain" pour que l'envoi fonctionne.
|
|
|
|
### Pas de liens
|
|
S'il y a un lien, ça va bloquer l'envoi. Parce que c'est rare qu'un premier contact légitime vous envoie un lien...
|
|
|
|
### Mots-clés bloqués
|
|
Il y a une liste (basique) de mots-clés qui vont empecher l'envoi d'un mail. Ça demande à être complété. C'est très basique aussi bien sûr.
|
|
|
|
### Question personnalisée
|
|
Ça reste assez redoutable pour pas mal de bots. Créez les votres, c'est comme ça que c'est le plus efficace.
|
|
|
|
#### Efficacité
|
|
Soyons honnête : ça va filtrer les plus basiques. Mais c'est déjà ça. On ne fera pas face aux IA avec ça, mais qui va brûler des tonnes d'énergie pour vous envoyer un message proposant des élargissements de péniches ? Oui, on sait, ils le feront… Mais en attendant d'avoir de meilleurs parades, ça limitera un petit peu le spam dans votre boîte.
|
|
|
|
|
|
## Todo
|
|
Il faudrait ajouter
|
|
- Une gestion des délais en associant le token csrf du formulaire avec un timestamp et refuser la requete si elle est faite trop rapidement
|
|
- Une détection des ip faisant des erreurs afin de les bannir
|
|
|
|
Il faut aussi vérifier l'accessibilité. Ça semble acceptable "là", à voir quand on est inclus dans un site.
|
|
|
|
Et puis ajouter un menu déroulant avec options à choisir pour celles qui veulent trier un peu ("devis", "papote", "formation", etc). À inclure en première ligne du message.
|