Merci pour ta réponse.
Une erreur de configuration qui rendrait la source de tes fichiers PHP lisible est extrêmement rare (mais pas impossible).
Si c'est possible, ça reste à considérer

.
La solution la plus classique est bien celle que tu as évoquée : le mettre en dur dans un fichier .php et ce fichier doit être en dehors du DocumentRoot pour ne pas pouvoir être appelé via une url.
Après plus de recherches, et je peux bien sûr me tromper, cela semble être une méthode un peu datée, j'ai trouvé comme autre solution des classes tel que PHPDotEnv (github: /vlucas/phpdotenv). Cela semble assez bien correspondre à mon besoin, notamment limiter les risques d'exposer certaines informations sensibles, même au delà du mot de passe j'imagine.
Pas sûr que ça ait un intérêt de mettre un cron pour envoyer par batch les emails d'un formulaire.
A mon sens l'envoi en direct au fil de l'eau est le plus répandu et fonctionne bien.
Cela fait partie du workflow qui est toujours en construction : Parmi toutes les manières d'éviter que ce formulaire ne puisse être abusé pour:
1/ Sur-charger une boîte mail (le destinataire)
2/ Se faire bloquer l'accès au serveur SMTP de son ESP
3/ Se faire emmerder
J'ai notamment mis en place une liste d'attente : Ces mails, à destination d'une association, ne sont pas « en retard » si un délais de 5 minutes est mis en place. Cela permet même en cas d'abus du formulaire (même moi peux assez rapidement concevoir un outil qui va automatiser le bourrage du formulaire), de ne recevoir qu'un mail toutes les X minutes.
Si je me retrouve avec 100 mails en attente, certes cela prendrais 5 minutes × 100 = 500 minutes (soit 8,3 heures). Cela n'est pas réaliste au vu de nos réceptions actuel de mails. Si ça arrive, je pourrais aussi assez rapidement le savoir via une sonde pour monitorer.
Donc non ce n'est pas une vrai sécurité contre le spam ou le flood du formulaire, mais en cas de problème, notre boîte mail reste 100% utilisable et on est pas non plus interdit chez notre ESP.
Par ailleurs, si ton formulaire est accessible publiquement (sans identification) il faut que tu prévois de filtrer les données en fonction de leur contenu (et/ou mettre un captcha) pour éviter que des robots spammeurs qui remplissent automatiquement les formulaires dispo sur le web pour envoyer des liens vers des sites douteux.
C'est effectivement ce qui est prévu, mon délais pour l'envoi de mail permet juste en cas de succès d'un attaquant, de limiter la casse.
À l'heure actuelle, il n'y a pas de captcha, mais je prévois la mise en place de :
- Un captcha, qui doit être raisonnablement lisible (l'association est centré autour des troubles du neurodéveloppement… dont les troubles DYS… et pour eux les captcha c'est infernal). Je pourrais le cas échéant remplacer ça par une question auquel on répond, c'est basique et pas mieux ou moins bien qu'un captcha, sauf que ce dernier peut être unique à chaque fois, la question elle… je vois difficilement comment.
- Un honey pot pour capter les bots trop bêtes pour s'en rendre compte sans gêner les utilisateurs.
- Éventuellement, la mise en place de filtres via des outils du type RSpamD qui vont analyser le contenu à la recherche de choses suspecte. Les termes "hot", "girls", "area" sont pas le genre de choses que l'on rencontre dans nos échanges par e-mail

.
- Ou encore un outil du style "Êtes-vous un humain" qui analyse les mouvements de la souris, mais ça servira pas longtemps contre les outils propulsé par IA d'ici quelques temps, j'imagine.
Cependant, merci pour ta réponse, qui correspond à ma question initiale.
Pour l'heure je considère le sujet comme résolu : Je vais tester PHPDotenv et, si ça ne convient pas, voir cette méthode plus classique.
Cordialement,
GASPARD DE RENEFORT Kévin
Merci pour ta réponse.
[quote] Une erreur de configuration qui rendrait la source de tes fichiers PHP lisible est extrêmement rare (mais pas impossible).[/quote]
Si c'est possible, ça reste à considérer :).
[quote] La solution la plus classique est bien celle que tu as évoquée : le mettre en dur dans un fichier .php et ce fichier doit être en dehors du DocumentRoot pour ne pas pouvoir être appelé via une url.[/quote]
Après plus de recherches, et je peux bien sûr me tromper, cela semble être une méthode un peu datée, j'ai trouvé comme autre solution des classes tel que PHPDotEnv (github: /vlucas/phpdotenv). Cela semble assez bien correspondre à mon besoin, notamment limiter les risques d'exposer certaines informations sensibles, même au delà du mot de passe j'imagine.
[quote]Pas sûr que ça ait un intérêt de mettre un cron pour envoyer par batch les emails d'un formulaire.
A mon sens l'envoi en direct au fil de l'eau est le plus répandu et fonctionne bien.[/quote]
Cela fait partie du workflow qui est toujours en construction : Parmi toutes les manières d'éviter que ce formulaire ne puisse être abusé pour:
1/ Sur-charger une boîte mail (le destinataire)
2/ Se faire bloquer l'accès au serveur SMTP de son ESP
3/ Se faire emmerder
J'ai notamment mis en place une liste d'attente : Ces mails, à destination d'une association, ne sont pas « en retard » si un délais de 5 minutes est mis en place. Cela permet même en cas d'abus du formulaire (même moi peux assez rapidement concevoir un outil qui va automatiser le bourrage du formulaire), de ne recevoir qu'un mail toutes les X minutes.
Si je me retrouve avec 100 mails en attente, certes cela prendrais 5 minutes × 100 = 500 minutes (soit 8,3 heures). Cela n'est pas réaliste au vu de nos réceptions actuel de mails. Si ça arrive, je pourrais aussi assez rapidement le savoir via une sonde pour monitorer.
Donc non ce n'est pas une vrai sécurité contre le spam ou le flood du formulaire, mais en cas de problème, notre boîte mail reste 100% utilisable et on est pas non plus interdit chez notre ESP.
[quote] Par ailleurs, si ton formulaire est accessible publiquement (sans identification) il faut que tu prévois de filtrer les données en fonction de leur contenu (et/ou mettre un captcha) pour éviter que des robots spammeurs qui remplissent automatiquement les formulaires dispo sur le web pour envoyer des liens vers des sites douteux.[/quote]
C'est effectivement ce qui est prévu, mon délais pour l'envoi de mail permet juste en cas de succès d'un attaquant, de limiter la casse.
À l'heure actuelle, il n'y a pas de captcha, mais je prévois la mise en place de :
- Un captcha, qui doit être raisonnablement lisible (l'association est centré autour des troubles du neurodéveloppement… dont les troubles DYS… et pour eux les captcha c'est infernal). Je pourrais le cas échéant remplacer ça par une question auquel on répond, c'est basique et pas mieux ou moins bien qu'un captcha, sauf que ce dernier peut être unique à chaque fois, la question elle… je vois difficilement comment.
- Un honey pot pour capter les bots trop bêtes pour s'en rendre compte sans gêner les utilisateurs.
- Éventuellement, la mise en place de filtres via des outils du type RSpamD qui vont analyser le contenu à la recherche de choses suspecte. Les termes "hot", "girls", "area" sont pas le genre de choses que l'on rencontre dans nos échanges par e-mail ;).
- Ou encore un outil du style "Êtes-vous un humain" qui analyse les mouvements de la souris, mais ça servira pas longtemps contre les outils propulsé par IA d'ici quelques temps, j'imagine.
Cependant, merci pour ta réponse, qui correspond à ma question initiale.
Pour l'heure je considère le sujet comme résolu : Je vais tester PHPDotenv et, si ça ne convient pas, voir cette méthode plus classique.
Cordialement,
GASPARD DE RENEFORT Kévin