Jump to content

[RESOLU] Spam depuis le formulaire de contact


Jean Francois G

Recommended Posts

Bonjour a tous, depuis ce matin je recois des centaines et des centaines de spam provenant de notre formulaire de contact du site.

C'est comme ci des milliers de clients cliquaient sur "nous contacter" avec des adresses emails différentes.

Dans chaque message on a bie  notre entête, notre logo, la mention "message de la part d'un client" etc.. Donc cela vient bien de notre site.

Comment faire pour stopper cette attaque de SPAM provenant du formulaire du site ! ?

Je peux même pas créer un filtre spam puisque l'adresse de provenance du message est notre adresse de site web.

Une idée en urgence ?

HELP !

 

 

Edited by Jean Francois G (see edit history)
Link to comment
Share on other sites

  • Oron changed the title to Spam depuis le formulaire de contact
  • 3 weeks later...

Bonjour, je tente d'installer le code de deokia. Le capcha fonctionne, si on coche, le mail part, par contre si on ne le coche pas, il ne se passe rien quand on envoye, aucun message d'erreur. J'ai bien configuré les 2 keys...., + modifié header.tpl et index.php racine

 

je suis en 1.6.1.5

Une idée?

merci

Edited by shopme (see edit history)
Link to comment
Share on other sites

  • 2 weeks later...

Chez moi cette solution ne fonctionne pas :(

je recois encore des spam.

c'est une presta 1.6.1.4,

J'ai remarqué qu'ils arrivent dans mon bo mais pas dans mes emails contrairement a si j'envoi moi meme un mail test depuis le formulaire de contact.

https://www.fanatikseeds.org/fr/

Si qq'un a une autre astuce a proposer? Je suis tombé sur plusieurs post mais tous évoquent ce système de captcha

 

Link to comment
Share on other sites

Je ne connais pas ce test que vous avez fait Eolia je ne peux donc pas m'auto tester, il ne me reste plus qu'a patienter et observer mais en effet je confirme que j'avais fait une erreur (dans la clé). On verrait si je recois des spam cette nuit,

Merci ;)

Link to comment
Share on other sites

En effet Eolia, c'est vraiment pas compliqué, je commençais a douter de mes capacité a faire un copié/collé.

En fait j ai 2 boutiques sur le meme serveur, avec l'une installé dans l'autre. Je sais pas qui m avait fait ca à l epoque mais bon c'est un peu la merde ds les fichiers et c'est ce qui m a perturbé et de ce fait je ne modifiais pas le bon index.php.

J'ai modifié celui que je pense être le bon vers 11h et depuis plus aucun spam.

J'ai envie de croire que je suis enfin tranquille.

Merci pour ton aide et ton suivi ;)

Link to comment
Share on other sites

Bon je sais pas si j ai mal fait la manip ou quoi mais ca continue (j'ai reçu un nouveau mail à la con).

Pour répondre à Dams je ne pense pas que quelqu'un en veuille particulièrement a cette boutique, cela dit tout est possible, les gens sont tellement cons parfois...

 

Link to comment
Share on other sites

  • 2 weeks later...

Bonjour à tous j'ai le même souci que MELBUC des mails russe à la c.., j'ai installé un module eicaptcha  mais n'y fait je reçois toujours ces mails.

Merci d'avance pour votre aide

 

Cordialement

 

Link to comment
Share on other sites

Bonjour,

 

Veuillez m'excuser je préfère demander pour être sure :

Quelle partie du code va dans le fichier Header.tpl et quelle partie du code va dans index.php et à quel endroit s'il vous plait ?

 

Je m'excuse je débute 

 

Merci d'avance pour votre aide

 

Link to comment
Share on other sites

Une solution simple peut-être de modifier le friendly URL de votre page de contact ainsi que d'ajouter le code suivant à votre .htaccess :

RewriteCond %{QUERY_STRING} ^controller=contact$
RewriteRule ^(.*)\.php$ - [L,R=404]

afin d’empêcher que les bots de trouver votre page de contact uniquement en rajoutant "/?controller=contact" après votre URL.

Edited by William K. (see edit history)
Link to comment
Share on other sites

Si comme vous le captcha ne bloque pas le formulaire c'est que vous l'avez mal installé et pas contrôlé.

Mettre le contrôleur contact en 404 est complètement idiot.

Autant mettre un die(); dans votre index.php et se reconvertir en baraque à frites^^

Link to comment
Share on other sites

J'ai fait la manip (insertion des deux bouts de code dans index.php et header.tpl) plusieurs fois pour être sûr mais le re-captcha n'apparait pas sur mon formulaire et l'envoi d'un message génère une page blanche avec un superbe "not human".
J'ai même supprimé les clés pour en créer de nouvelles...rien à faire :/

Une idée ?
Merci d'avance.

http://www.lesrecoltesdumonde.com/contactez-nous

PS 1.6.1.11

Edited by manexweb (see edit history)
Link to comment
Share on other sites

1 hour ago, Eolia said:

Si comme vous le captcha ne bloque pas le formulaire c'est que vous l'avez mal installé et pas contrôlé.

Mettre le contrôleur contact en 404 est complètement idiot.

Autant mettre un die(); dans votre index.php et se reconvertir en baraque à frites^^

 

Le seul 404 que je génère là, c'est celui de l'URL /?controller=contact qui n'est de toute façon pas utilisé par un utilisateur lambda, mon formulaire est toujours entièrement utilisable. Je ne vois pas en quoi ne pas laisser un chemin uniquement utilisé par les bots est "intelligent".

Link to comment
Share on other sites

il y a 23 minutes, manexweb a dit :

J'ai fait la manip (insertion des deux bouts de code dans index.php et header.tpl) plusieurs fois pour être sûr mais le re-captcha n'apparait pas sur mon formulaire et l'envoi d'un message génère une page blanche avec un superbe "not human".
J'ai même supprimé les clés pour en créer de nouvelles...rien à faire :/

Une idée ?
Merci d'avance.

http://www.lesrecoltesdumonde.com/contactez-nous

PS 1.6.1.11

bah vous avez dû vous gaufrer quelque part, le code n'est pas dans le header.tpl de votre thème (peut-être l'avez-vous mis dans un autre thème^^)

Link to comment
Share on other sites

il y a 25 minutes, William K. a dit :

 

Le seul 404 que je génère là, c'est celui de l'URL /?controller=contact qui n'est de toute façon pas utilisé par un utilisateur lambda, mon formulaire est toujours entièrement utilisable. Je ne vois pas en quoi ne pas laisser un chemin uniquement utilisé par les bots est "intelligent".

C'est vrai ça, on se demande pourquoi Prestashop utilise le système MVC...

Il y a juste un cas que vous avez oublié, mais je vous laisse le découvrir tout seul^^

 

Link to comment
Share on other sites

Bonjour,

 

le fichier index.php, c'est bien celui présent dans le thème? j'utilise prestashop 1.6

Je dois placer le code après le exit?

Voici mon fichier index.php

Merci

<?php
/*
* 2007-2015 PrestaShop
*
* NOTICE OF LICENSE
*
* This source file is subject to the Academic Free License (AFL 3.0)
* that is bundled with this package in the file LICENSE.txt.
* It is also available through the world-wide-web at this URL:
* http://opensource.org/licenses/afl-3.0.php
* If you did not receive a copy of the license and are unable to
* obtain it through the world-wide-web, please send an email
* to [email protected] so we can send you a copy immediately.
*
* DISCLAIMER
*
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
* versions in the future. If you wish to customize PrestaShop for your
* needs please refer to http://www.prestashop.com for more information.
*
*  @author PrestaShop SA <[email protected]>
*  @copyright  2007-2015 PrestaShop SA
*  @license    http://opensource.org/licenses/afl-3.0.php  Academic Free License (AFL 3.0)
*  International Registered Trademark & Property of PrestaShop SA
*/

header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Last-Modified: ".gmdate("D, d M Y H:i:s")." GMT");

header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");

header("Location: ../");
exit;

 

Link to comment
Share on other sites

15 hours ago, Eolia said:

C'est vrai ça, on se demande pourquoi Prestashop utilise le système MVC...

Il y a juste un cas que vous avez oublié, mais je vous laisse le découvrir tout seul^^

 

D’après moi l'avantage du MVC c'est de gagner en clarté plutôt que de tout avoir dans un même fichier et de faciliter la maintenance et l'évolution de la plateforme, je ne pensais pas qu'il y avait un avantage à pouvoir accéder directement au controller via URL mais je suis parfaitement prêt à comprendre une critique constructive, mon but est de faire au mieux et d'aider si je le peu.

Ma vision de la chose est que ce n'est surement pas une aide à la protection que d'avoir une URL commune sur tous nos sites car nous facilitons l’accès aux systèmes automatisés.

Je serai content d’apprendre quelque-chose de valeur à propos de mon site, donc si vous pouvez prendre le temps de m'expliquer en quoi je fais du tort à mon site en agissant ainsi je vous serais reconnaissant.

Edited by William K. (see edit history)
Link to comment
Share on other sites

@Eolia :

j'aimerais savoir si je pouvais espérer avoir une réponse sur le sujet.

Vous n'y avez évidemment aucune obligation mais après avoir dis que mon conseil était idiot, j'aurai crus qu'il serait simple pour vous d'expliquer le pourquoi de la chose.

Je me doutes qu'il est beaucoup plus simple et utile pour vous de recopier le tuto de recaptcha sur tous les sujets et espérer récupérer des points de réputations facilement, mais le but du forum étant malgré tout l'échange d'informations entre utilisateurs, je crois encore que vous pourriez répondre autrement que par des devinettes du genre "Il y a juste un cas que vous avez oublié, mais je vous laisse le découvrir tout seul^^".

 

Link to comment
Share on other sites

Avant de me contenter de recopier un tuto de captcha j'ai répondu à une centaine de messages sur ce sujet, regardez les historiques.

Au bout d'un moment, ça lasse de se répéter, alors oui j'ai fait un tuto mais certainement pas pour les "points" dont je me moque éperdument (je n'ai pas de page FB et donc pas de likes^^)

Je vous laisse avec ma devinette :) 

  • Haha 1
Link to comment
Share on other sites

9 hours ago, Eolia said:

Cache vidé et options de recompilation paramétrées comme suit ?

 

 

En effet, c'est beaucoup mieux en vidant le cache, merci d'avoir pris le temps de m'aider et bon courage, ça ne doit pas être simple tous les jours :) 
Par contre la manip a fait sauter mon background et certaines couleurs comme si le .css modifié n'était plus lié...

 

PS: "super tracker/sniffer" c'est ironique ? 

Edited by manexweb (see edit history)
Link to comment
Share on other sites

  • 2 weeks later...

Bonjour,

J'ai utilisé la solution pour installer recaptcha, en suivant https://shop.devcustom.net/fr/content/9-mise-en-place-captcha?content_only=1.

J'ai testé et j'ai bien eu les cases à cliquer. J'ai bien reçu les messages dans le Back Office mais j'ai rien dans la boîte email. J'ai aussi répondu les message dans le Back Office mais j'ai rien reçu comme réponse.

Pourriez vous m'éclairer sur ce problème?

 

tokoada.fr

Edited by Tatokoa
forgotten site information (see edit history)
Link to comment
Share on other sites

Pour ma part, j'ai choisi de créer une expression régulière qui bloque les mails finissant en "ru" sur le formulaire de contact.

Le fichier à modifier est dans controllers/front et se nomme ContactController.php
Ligne 44

if (!($from = trim(Tools::getValue('from'))) || !Validate::isEmail($from)) {

Remplacer par

if (!($from = trim(Tools::getValue('from'))) || !Validate::isEmail($from) || preg_match ("#ru$#", $from)) {   

Ca pourrait être mieux si j'avais révisé mes expressions régulières et que j'avais trouvé comment faire le test sur "(point)ru"... mais bon ça a le mérite de marcher dans mes tests !

  • Like 1
Link to comment
Share on other sites

6 hours ago, fuxu said:

Pour ma part, j'ai choisi de créer une expression régulière qui bloque les mails finissant en "ru" sur le formulaire de contact.

Le fichier à modifier est dans controllers/front et se nomme ContactController.php
Ligne 44


if (!($from = trim(Tools::getValue('from'))) || !Validate::isEmail($from)) {

Remplacer par


if (!($from = trim(Tools::getValue('from'))) || !Validate::isEmail($from) || preg_match ("#ru$#", $from)) {   

Ca pourrait être mieux si j'avais révisé mes expressions régulières et que j'avais trouvé comment faire le test sur "(point)ru"... mais bon ça a le mérite de marcher dans mes tests !

 

ça ne marche pas pour moi

Link to comment
Share on other sites

16 minutes ago, manexweb said:

regardez ce qui est écrit en titre de cette page ;)
https://shop.devcustom.net/fr/content/9-mise-en-place-captcha?content_only=1

 

Merci, oui j'ai suivi cette manipulation mais cela ne change rien, j'ai fais un essai de création de compte, mais je n'ai pas de captcha a mettre....

Je n'y connais rien, donc j'ai surement placé les éléments au mauvais endroit....

 

Il n'y a pas de module qui installerait ça directement , ça serait plus simple :) ?

Edited by balaizeben (see edit history)
Link to comment
Share on other sites

2 minutes ago, Eolia said:

Ce code n'intervient pas du tout sur la création de compte mais sur l'envoi des messages depuis la page contact.

Vous avez du vous tromper de topic^^

Effectivement, j'ai fais n'importe quoi... voilà quand on fait plusieurs chose à la fois...

 

Maintenant c'est bon, j'ai bien le captcha qui est présent ( même si je trouve cette demande de panneau de signalisation contraignante :) )

Mais si ça me permet d'éviter de recevoir des dizaines de mails, on ne va pas se plaindre...

 

Merci a vous

 

Link to comment
Share on other sites

Bonjour, moi l'installation capcha Prestashop + recapcha google nickel, par contre je continue à recevoir des mail.ru! Beaucoup moins depuis que j'ai bloqué et purger mes mail via OVH, mais j'en ai encore. 

N'y aurait-il pas une petite astuce , transformation dans fichier contact-form.tpl , ?

Je pensais modifier @ de mon adresse mail par un [at], pour perturber les robots? Mais si je peux faire cela, merci de me dire comment l'écrire .

je compte sur vous! La Russie commence à nous EMMMMMMMM

Link to comment
Share on other sites

Genre de messages reçu:

Примите поздрaвления!!!

C pадoстью сoобщаeм Вам o том, что:

В этoм году Вы проводили онлайн зaкaзы (трaнзaкции), и oдна из них стaла пoбедителем сoциaльной спeц. пpограммы.

Вас ждёт материальнoе пpемиpoвaние с нaшегo пoощpительнoго фонда в pазмеpе от 100$ до 5000$.

УЗHАТЬ СУMMУ ВОЗHAГРAЖДЕHИЯ

de

[email protected]

mais ca change tout le temps!

Link to comment
Share on other sites

Bonjour,

Merci beaucoup pour cette solution, qui a été mise en place en 2 minutes chrono!!!  Pour ma part, la seule chose "bizarre" a été éliminé dans les options de performance. J'ai simplement dû décocher la case "déplacer le code Javascript à la fin, sous peine d'avoir des petits dysfonctionnements, notamment au niveau du panier qui est "stické", mais rien de méchant et j'ai même l'impression que le site réagit un poil plus vite...

Bref, merci pour votre efficacité et le partage!

Link to comment
Share on other sites

Bonjour,

sans vouloir fâcher personne et après avoir bien lu, je voudrais juste une confirmation :

pour un presta 1.4, je colle le 1er code dans contact-form.php et le second code dans order-detail.php

 

merci pour cette précision....

Link to comment
Share on other sites

il y a 18 minutes, bbajc a dit :

le code php

 

Si vous avez lu ce mini tuto, vous avez 2 sortes de code: du code javascript qui va dans le header.tpl et du code php qui va dans les fichiers php

Si vous ne comprenez toujours pas je ne peux plus rien pour vous :( 

Link to comment
Share on other sites

il y a 2 minutes, bbajc a dit :

j'aurais donc appris à cette occasion que les fichier tpl sont écrit en javascript... ;) ?

 

Non plus...

Un fichier tpl est un squelette utilisé par le moteur de template Smarty qui va servir à construire les pages affichées en html.

Celui-ci comprend principalement du code html, des variables Smarty ($product par exemple) qui sont issues du php et éventuellement du javascript (Ce qui est notre cas aujourd'hui)

Link to comment
Share on other sites

et tout cela n'est pas évident du tout pour des non programmeurs qui cherchent des solutions auprès de pro qui ont la gentillesse de donner de leur temps pour les débloquer, notamment des assauts soviétiques ! :D

Link to comment
Share on other sites

  • 2 weeks later...

Bonjour,

Merci à tout le monde pour l'aide et à ces codes.

Maintenant j'ai un petit souci. Ces codes marche bien sur ma boutique 1.6.1.11 mais il y a une erreur sur ma boutique 1.5.6.2.

En fait, si je remplie le formulaire contact et je ne coche pas reCaptcha mais je clique sur "envoyer", je reçois un message d'erreur "not human". Alors que sur l'autre boutique ça ne se passe rien (exactement comme je voulais) .

 

Avez-vous une idee svp?

Merci.

Link to comment
Share on other sites

  • 5 months later...
Le 15/03/2018 à 11:18 PM, fuxu a dit :

Pour ma part, j'ai choisi de créer une expression régulière qui bloque les mails finissant en "ru" sur le formulaire de contact.

Le fichier à modifier est dans controllers/front et se nomme ContactController.php
Ligne 44


if (!($from = trim(Tools::getValue('from'))) || !Validate::isEmail($from)) {

Remplacer par


if (!($from = trim(Tools::getValue('from'))) || !Validate::isEmail($from) || preg_match ("#ru$#", $from)) {   

Ca pourrait être mieux si j'avais révisé mes expressions régulières et que j'avais trouvé comment faire le test sur "(point)ru"... mais bon ça a le mérite de marcher dans mes tests !

 

 

Très bonne idée pour cibler précisément les spammeurs d'un pays,

pour la Russie (on peut faire pareil pour la Chine ou autres pays) j'ai mis en place un override : 'ContactController.php' dans /override/controllers/front

Le fichier commence comme ça :

<?php
/*
*
*  2018@ modification for email ending with ".ru" and russian language content
*
*/

class ContactController extends ContactControllerCore
{	
    public function postProcess()
    {
        if (Tools::isSubmit('submitMessage')) {
            $extension = array('.txt', '.rtf', '.doc', '.docx', '.pdf', '.zip', '.png', '.jpeg', '.gif', '.jpg');
            $file_attachment = Tools::fileAttachment('fileUpload');
			$message = Tools::getValue('message'); // Html entities is not usefull, iscleanHtml check there is no bad html tags.
			if (!($from = trim(Tools::getValue('from'))) || !Validate::isEmail($from)) {
				$this->errors[] = Tools::displayError('Invalid email address.');
			}
			elseif (substr($from, -3) == '.ru') {
				$this->errors[] = Tools::displayError('Spam email address detected.');
			}
			elseif (!$message) {
				$this->errors[] = Tools::displayError('The message cannot be blank.');
			}
			elseif (!Validate::isCleanHtml($message)) {
				$this->errors[] = Tools::displayError('Invalid message');
			}
			elseif (preg_match('/[А-Яа-яЁё]/u', $message)) {
				$this->errors[] = Tools::displayError('This message is in russian and it is not allowed.');
			}
			elseif

et laisser le reste du code de la fonction en fermant bien les accolades, puis effacer le fichier cache/class_index.php et tester votre formulaire.

 

Enjoy :)

Link to comment
Share on other sites

  • 3 months later...

Hello à tous,

J'avais déjà installé le code pour me débarrasser de spam chinois, mais visiblement je l'avais mal installé car maintenant c'est les russes qui nous envoient plusieurs messages par jours.

J'ai refait l'installation et maintenant j'attend de voir... on croise les doigts!

 

Par contre, une remarque (probablement idiote): avec les mails russes, ils envoient un fichier PDF, pour empêcher ça, j'ai supprimer l'option dans le BO presta, mais visiblement cela ne les empêchent pas d'envoyer des pièces jointes. 

Merci Eolia pour ce code et joyeuses fêtes à tous!

Link to comment
Share on other sites

Bonjour à tous, 

j'ai le même problème de spam (des russes mais en gmail.com, c'est chic!!) et j'ai suivi la procédure proposée par @Eolia(merci pour votre patience et précision) :

- inscription recaptcha google

- modification index.php à la racine

- modification classe de contactform.tpl

cependant il n'y a pas de balise </head> dans le header.tpl de mon thème et je ne sais pas où coller le script de clé publique...

Pour info, c'est une version 1.7.2

le site : http://vingtetuneheuresdix.jewelry/index.php?controller=contact

Je suis très débutante, merci pour votre aide et conseils à venir!

 

Link to comment
Share on other sites

  • 3 months later...
  • 3 weeks later...

Vous pouvez mettre un captcha sur tous les formulaires de votre site Prestashop, par exemple sur le formulaire d'enregistrement, ouvrez le fichier authentification.tpl qui se trouve dans votre thème, puis il faut rentrer le script suivant juste avant le bouton submit <div class="submit">

Voici le script :

[Modération: Script supprimé]

Cela fonctionne !

Link to comment
Share on other sites

Hello. 

 

The best way is to implement recaptcha v.3 in invisible mode because some people use for exemple "365.shop" like the company name (or lastname or firstname) and the 1.6.1.24 do not allow this name 365.shop.

I already implemented recaptcha v.3 on the 1.6.1.23 and 1.6.1.24 and it is working very well.

 

It is also invisible for the client (no more boring pictures and clicks for the client) 

 

It is working also very well for the contact_form. 

 

Best regards 

Edited by bu_marius (see edit history)
Link to comment
Share on other sites

- recaptcha v3 a plein de bugs

- Validate de company: isGenericName:

    public static function isGenericName($name)
    {
        return empty($name) || preg_match(Tools::cleanNonUnicodeSupport('/^[^<>={}]*$/u'), $name);
    }

Les points ne sont pas interdits^^

Link to comment
Share on other sites

Bonjour. 

 

Dans la 1.6.1.24 

 

Xxx.ggg est interdit 

Le xxx. Ggg est accepté. 

Un exemple il y a des clients avec S.A.R.L qui n'ecrivent jamais S. A. R. L.

 

Je parle ici du firstname et lastname

Et normalement le client est roi 😁

 

Bonne soirée 

Edited by bu_marius (see edit history)
Link to comment
Share on other sites

Ok, be nsupprimez tous les validate alors, ce sera plus simple. Adresses mails erronées, adresses postales incomplètes ou fausse etc...

Avec ce genre de raisonnement ca va être compliqué de gérer une boutique convenablement.

Link to comment
Share on other sites

  • ttoine locked this topic
Guest
This topic is now closed to further replies.
×
×
  • Create New...