Jump to content

Recommended Posts

ah mais oui c'est la version où il y a une erreur à l'install avec le serialize déjà serialisé !!!

Share this post


Link to post
Share on other sites
On 25/01/2018 at 12:13 PM, Eolia said:

Oui php le laisse passer mais lorsque tu vas désérialiser cela ne va le faire qu'au 1er niveau et les données seront inexploitables.

Donc soit tu ne sérialises pas, soit tu prépares un tableau et tu le sérialises :) 


if (!Configuration::getGlobalValue('ANTISPAMCONTACT_LIST')) {
         $value = 'a:15{i:0;s:15:"www.lehu201.com";i:1;s:16:"www.longhu90.com";i:2;s:13:"www.zb557.com";i:3;s:14:"www.hubofa.com";i:4;s:15:"www.sega113.com";i:5;s:8:"@166.com";i:6;s:8:"@163.com";i:7;s:7:"@qq.com";i:8;s:10:"huyabo.com";i:9;s:10:"xieyiceshi";i:10;s:13:"www.sega7.com";i:11;s:15:"www.new8882.com";i:12;s:15:"www.sega117.com";i:13;s:15:"www.ZHOUJI6.COM";i:14;s:10:"sj5666.com";}';
         if (!Configuration::updateGlobalValue('ANTISPAMCONTACT_LIST', $value)) {
            return false;
         }
      }

// Soit:

if (!Configuration::getGlobalValue('ANTISPAMCONTACT_LIST')) {
         $array = array("www.lehu201.com", "www.longhu90.com", "www.zb557.com", "www.hubofa.com","www.sega113.com", "@166.com", "@163.com", "@qq.com", "huyabo.com", "xieyiceshi", "www.sega7.com", "www.new8882.com", "www.sega117.com", "www.ZHOUJI6.COM", "sj5666.com");
         if (!Configuration::updateGlobalValue('ANTISPAMCONTACT_LIST', serialize($array))) {
            return false;
         }
      }

 

Bonjour à tous,

Je regarde du côté du ps_configuration ou du code du module ?

Merci !

Share this post


Link to post
Share on other sites

Vous avez quel code actuellement dans le module ? la double sérialisation ?

 

Appliquez mon patch dans ce cas

Share this post


Link to post
Share on other sites

Voici le code actuel :

   public function install() {

      if (!parent::install()) {
         return false;
      }
      if (!Configuration::getGlobalValue('ANTISPAMCONTACT_LIST')) {
         $value = 'a:15:{i:0;s:15:"www.lehu201.com";i:1;s:16:"www.longhu90.com";i:2;s:13:"www.zb557.com";i:3;s:14:"www.hubofa.com";i:4;s:15:"www.sega113.com";i:5;s:8:"@166.com";i:6;s:8:"@163.com";i:7;s:7:"@qq.com";i:8;s:10:"huyabo.com";i:9;s:10:"xieyiceshi";i:10;s:13:"www.sega7.com";i:11;s:15:"www.new8882.com";i:12;s:15:"www.sega117.com";i:13;s:15:"www.ZHOUJI6.COM";i:14;s:10:"sj5666.com";}';
         if (!Configuration::updateGlobalValue('ANTISPAMCONTACT_LIST', serialize($value))) {
            return false;
         }
      }
      return true;
   }

 

Share this post


Link to post
Share on other sites

Ok, donc de la bouze^^

remplacez :

if (!Configuration::updateGlobalValue('ANTISPAMCONTACT_LIST', serialize($value))) {

par

if (!Configuration::updateGlobalValue('ANTISPAMCONTACT_LIST', $value)) {

Share this post


Link to post
Share on other sites

Tout d'abord, encore un grand merci @Eolia pour le temps passé.

Code modifé. Je ne recois toujours pas les SPAMs mais le même message apparaît toujours : GET OUT BOT!!

Share this post


Link to post
Share on other sites

Avez-vous réinitialisé le module et revérifié sa configuration ?

Car les données qui étaient enregistrées étaient foireuses du coup^^

Share this post


Link to post
Share on other sites

Je viens de supprimer/ajouter/installer le module qui était bien reconfiguré avec la valeur :

if (!Configuration::updateGlobalValue('ANTISPAMCONTACT_LIST', $value)) {

Même résultat : Pas de SPAMs mais toujours "GET OUT BOT!!"

Share this post


Link to post
Share on other sites

Rebelote :

Warning: Invalid argument supplied for foreach() in /home/clients/82b4f2b3306d530822df7119342e56e5/web/override/controllers/front/ContactController.php on line 15

Notice: Undefined variable: blackListTriggered in /home/clients/82b4f2b3306d530822df7119342e56e5/web/override/controllers/front/ContactController.php on line 37

 

Share this post


Link to post
Share on other sites
Il y a 19 heures, Eolia a dit :

ca me rappelle quelque chose...

Allez voir dans la base de données ps_configuration ce qu'il y a dans 


ANTISPAMCONTACT_LIST

 

Share this post


Link to post
Share on other sites

chez votre hébergeur -> bases de données -> phpmyadmin

Share this post


Link to post
Share on other sites

Au pire sinon essaye de faire ta propre config via l'onglet config du module.

Elle devrait écraser la config de base et la tu auras enfin quelque chose que fonctionne relativement mieux

Pour l’accès a la base c'est depuis php my admin sur ton serveur. Si tu es sur un hébergement oû tout est prêt installer, ton hébergeur te fournit un lien logiquement

pour ce qui est de l’accès a la valeur dans la base il faut que tu cherche un truc comme config presta ou autre et tu trouveras logiquement ANTISPAMCONTACT_LIST à l'interieur

(dsl j'ai peut etre dit de la merde, mais je ne développe plus sous presta depuis quasiment 1 an)

Share this post


Link to post
Share on other sites

Merci à vous. J'ai pu accéder à mon interface phpMyAdmin.

Sauf erreur de ma part, je n'ai absolument AUCUN fichier comportant les termes ANTI ou SPAM dans les différentes database... curieux selon vous ?

Share this post


Link to post
Share on other sites
4 minutes ago, mikaelnatech said:

Merci à vous. J'ai pu accéder à mon interface phpMyAdmin.

Sauf erreur de ma part, je n'ai absolument AUCUN fichier comportant les termes ANTI ou SPAM dans les différentes database... curieux selon vous ?

Ça expliquerait en partie pourquoi vous avez une erreur dans la console et pourquoi aucun message ne passe

Pour la raison je dirai que mon module foire au moment de l'enregistrement de la config 

Quel version de presta utilise tu ? 

Share this post


Link to post
Share on other sites

il n'y a pas de fichiers dans une base de données, mais des tables avec des colonnes et des champs (comme dans Excel^^)

 

Donc, dans la table PS_CONFIGURATION (enfin le préfixe n'est pas forcément PS_ ) recherchez dans la colonne "name"

Share this post


Link to post
Share on other sites

Bah ce n'est pas possible si vous voyez ces données dans la page de configuration ???

 

Au pire, envoyez-moi un accès FTP par Message Privé, parce que là on tourne en rond^^

Share this post


Link to post
Share on other sites

Problème réglé^^

La configuration, dans le module était vide...

 

Donc petite mise à jour de l'override comme suit:

 

         $blackListsMessage = unserialize(Configuration::getGlobalValue('ANTISPAMCONTACT_LIST'));
         if(!empty($blackListsMessage)) {
             foreach ($blackListsMessage as $string) {
                $blackListTriggered = stripos($message, $string);
                if ($blackListTriggered !== false) {
                    break;   
                }
                $blackListTriggered = stripos(Tools::getValue('from'), $string);
                if ($blackListTriggered !== false) {
                    break;   
                }
             }
         }

  • Like 1

Share this post


Link to post
Share on other sites

Bonjour, je tente d'installer le snipet 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

Share this post


Link to post
Share on other sites

Normal: si pas coché, le bouton "Envoyer" ne fait rien

Share this post


Link to post
Share on other sites

Mais vous pouvez modifier le js pour y rajouter un message d'erreur si le captcha n'est pas coché^^

Share this post


Link to post
Share on other sites

Ok merci pour la réponse, je pensais qu'en cas d'envoi sans cocher, une page s'affichait avec le "not human"... bon si ça marche comme ça c'est bon. Merci pour ce snipet, j'étais soudainement envahit par un spam russe hyper chiant.

Share this post


Link to post
Share on other sites
On 18/05/2017 at 12:29 PM, thomascp said:

Bonjour,

 

Le site de notre client se fait spamer à mort depuis deux jours et ce malgré un ajout de module recaptcha de google sur le formulaire de contact ! Voici le genre de message SAV : 潪愽荖琥鸡【 www.zb557.com 】電子特邀:50餸58 100鎹118 12水

Et voici l'adresse du site en question :  escapade-petillante-et-gourmande-en-champagne.com

La boutique est en 1.6.1.13, donc à jour pour cette branche... oui puis-je trouver la "faille" qui permet à ce robot de passer "par dessus" le formulaire !

 

Merci.

 

Alors

1/ puisque tu es sur le bon topic, profites-en pour le lire

2/ la version 1.6.1.13 est loin d'être la dernière mise à jour de la branche, d'autant que même si la protection dérisoire de prestashop ne présente plus un obstacle aux spambot elle n'est apparu qu'en 1.6.1.17

3/ Il ne suffit pas d'ajouter un captcha, encore faut-il le tester

  • Like 2

Share this post


Link to post
Share on other sites
On 09/02/2018 at 9:07 PM, doekia said:

2/ la version 1.6.1.13 est loin d'être la dernière mise à jour de la branche

Elle l’était quand j'ai poster ce message, en mai 2017

Share this post


Link to post
Share on other sites

Juste pour mentionner que j'ai été spammé aussi ce weekend ... Je vais suivre les directives du captcha...

Par contre, mes spammeurs ne sont pas du tout les mêmes que vous ... Moi il semble qu'ils viennent de russie !!

 

Voici un message reçu à l'instant... Je n'ai pas été spammé depuis dimanche et là ça semble recommencer

 

ehyo.com@mail.ru

Au Service à la clientèle
  - 13/02/2018 - 11:42

Khurshedjon, Вы попали под сoциaльную прoгрaмму "Oнлaйн покупkа"

Рaнeе Вы совeршали oнлайн поkупки (трaнзаkции) и однa из них стaлa пoбедителeм социaльной прoграммы!

Вaс ожидaeт дeнeжноe вoзнaграждeние с нашегo пooщрительного фонда в размерe oт 100$ до 9000$.

ПОДРОБНАЯ ИНФОРМАЦИЯ - НИЖЕ

Узнать сумму вознаграждения

 

aldiya@inbox.ru

 

Ce sont toutes des adresses mail finissant par .ru avec ce genre de message...

 

Ils ont vraiment rien à faire ces gens - _ - ...

Share this post


Link to post
Share on other sites

Comme de nombreux site n'ont pas vraiment implémenté de blocage conforme mais par ban ip en provenance de chine, les bots sont maintenant des russes, et sûrement après demain des brésiliens.

Implantez un vrai blocage avec recaptcha et vous pourrez enfin être tranquille, d'autant que les blocage par ip, c'est 0 coté perfs puisque ça contrôle et donc scan les infos aussi pour le trafic normal qui je l'espère pour vous est 10x plus important que les pestes

Share this post


Link to post
Share on other sites

Bonjour ,

je rajoute ma petite expérience sur le sujet avec PS 1.7.2.4 

comme Miharaa, j'ai depuis le 17/02/2018 je reçois du spam surement de la même origine en Russe

j'ai fait scan avec l'antivirus de mon serveur et il a découvert et supprimé un fichier infecté par un virus dans le cache ,

installer facilement le (reCAPTCHA version 2)  .

et a première vu je n'ai plus de spam

 

 

 

 

Share this post


Link to post
Share on other sites

Merci pour le snippet, un ti kfé mais je préfère quand tu passes le boire en vrai.

D'ailleurs le taux est USD et pas EUR

  • Like 1

Share this post


Link to post
Share on other sites

@Blue-Garou

Si ton antivirus à détecté un fichier infecté, attention, ceci est une toute autre histoire que le spam du SAV ou autre d'ailleurs

Tu dois trouver par quel biais quelqu'un a-t-il pu injecter du code.

 

  • Thanks 1

Share this post


Link to post
Share on other sites

@doekia

Merci

je cherche mais je pense que c'est lier a la pièce jointe de la page contact. mais pas plus d'info.

j'ai malheureusement supprimé le fichier a la place de la mettre en quarantaine

heureusement aucun de mes autres site sur le serveur sont clean.

 

 

 

Share this post


Link to post
Share on other sites
On 24/01/2018 at 9:50 AM, Thorfy said:

Bonjour, 

Le premier lien n'est plus dispo en revanche le lien de la v1.2 est dispo sur ce même sujet 

Vous pouvez toujours me contacter si vous avez des difficultés dans le doute je remet les fichiers sur ce post

 

antispamcontact.zip

 

Merci beaucoup Thorfy Said.

Otage des spams comme Miharra et bien d'autres avec des mails genre "@mail.ru",

j'ai installé le ReCaptcha Google, mais pas vraiment efficace.

J'ai ensuite installé ton module antispamcontact.zip et paramètré avec ma liste :

Contenu Blacklisté:
  • www.mail.ru
  • www.list.ru
  • @list.ru
  • @mail.ru

Comme je ne savais pas trop si il fallait mettre l'adresse domaine ou une partie de l'adresse mail, j'ai mis les deux.

Et Bingo, depuis plus en-merdé par les spams.

Alors un grand MERCI, sincère et chaleureux à toi pour ton partage et ton SAV.

 

 

  • Like 1

Share this post


Link to post
Share on other sites

Bonjour
Meme soucis avec les spams "russes"
J ai telecharge antispamcontact.zip, j ai ajoute le module et j obtiens bien le message "Le module a bien été téléchargé." mais apres il n apparait pas dans la liste des modules donc impossible de l activer et de le configurer. Est ce que j ai rate quelque chose ?
Je suis sous Prestashop 1.6.1.6

Bonne journee a toutes et tous

Greg

Share this post


Link to post
Share on other sites
43 minutes ago, NashaIdea said:

Bonjour
Meme soucis avec les spams "russes"
J ai telecharge antispamcontact.zip, j ai ajoute le module et j obtiens bien le message "Le module a bien été téléchargé." mais apres il n apparait pas dans la liste des modules donc impossible de l activer et de le configurer. Est ce que j ai rate quelque chose ?
Je suis sous Prestashop 1.6.1.6

Bonne journee a toutes et tous

Greg

As-tu essayé via ton FTP ? Soit de l'installer soit de chercher le module ?

 

La version du module est-elle compatible avec ta version prestashop ? car sinon elle peut ne pas apparaitre.

Edited by ThomasF83000 (see edit history)

Share this post


Link to post
Share on other sites

Effectivement, les robots ont changé et sont passés maintenant par des adresses mail Russe.

La solution recaptach comme dit de partout est la meilleure parade une fois bien configurée.

En parlant de configuration j'ai d'ailleurs moi même une question. En effet, il est possible de passer outre le recaptach en jonglant entre les langues (je vais parler pour moi, ne connaissant pas pour les autres) de mon site.

En effet, une fois sur deux, le recaptcha n'apparait pas si on bascule, une fois sur la page contact, de la langue française à la langue anglaise ou espagnol, ce qui a pour conséquence le passage de quelques spams (je me doute que ça doit être par ce biais là, comme j'ai uniquement entre 2 et 1 spams par heure environ.

Donc, n'y aurait-il pas un moyen de forcer le chargement de recaptcha ?

  • Like 1

Share this post


Link to post
Share on other sites

Vous devez avoir un bug dans votre thème ou un cache serveur qui traine.

Mais même dans ce cas là, si vous avez installé les 2 scripts comme indiqué, les robots ne passeront pas la vérification de l'index.php.

Le but de ce 2ème script est justement ce cas là: les robots ne passent jamais par la page html mais envoient directement la requête en POST au controleur. ReCapatcha affiché ou pas

Share this post


Link to post
Share on other sites

le chargement du recaptcha peut prendre du temps à la bascule de langue (faute à google) mais l'index, lui ne laisse passer que si le recaptcha a été validé (donc affiché)

Edited by doekia (see edit history)

Share this post


Link to post
Share on other sites
3 hours ago, ThomasF83000 said:

As-tu essayé via ton FTP ? Soit de l'installer soit de chercher le module ?

 

La version du module est-elle compatible avec ta version prestashop ? car sinon elle peut ne pas apparaitre.

Je ne sais pas s il est compatible avec ma version mais il y a des chances, pour une installation via FTP, tu fais comment, dezip et directement a un emplacement specifique ?

Share this post


Link to post
Share on other sites

Question bête: Comment sont vos filtres de sélection ? 

Modules installés & non-installés ?

Activés & inactivés ?

Share this post


Link to post
Share on other sites
30 minutes ago, Eolia said:

Question bête: Comment sont vos filtres de sélection ? 

Modules installés & non-installés ?

Activés & inactivés ?

 

J ai essaye les 4 combinaisons sans retrouver le module...

Share this post


Link to post
Share on other sites

filtre réinitialisé et son nom dans la recherche non plus ?

Share this post


Link to post
Share on other sites

il me semble que les modules sont à déposer en zip

vérifié si celui-ci est bien en zip et non en RAR ou inversement 

(je ne me rappelle plus trop de l'nterface)

Share this post


Link to post
Share on other sites

Pour moi la meilleure des solutions est le snippet de Doekia 

Sinon sur github il existe un module gratuit sur le même principe

https://github.com/seigieu/seigisecurecontact

Demain les bots seront avec des .xx ou .yy et autre, en plus on remarque qu'ils ont baissé la fréquence des e-mails pour se faire moins repérer ou bloquer par une limite au niveau serveur.

Il y a 6 mois une queue remplit à 40k emails maintenant c'est du 20 à la journée.

 

 

  • Like 1

Share this post


Link to post
Share on other sites

Bonjour à tous,

Je viens de lire l'intégralité des 3 pages de ce sujet, puisque bien sur concernée depuis peu par ce problème de .ru

Je n'ai pas encore de captcha et recaptcha. Je signale que j'ai un ami qui a un site avec, et il rencontre pourtant toujours ce problème de spams.

 

Donc, ma première question : êtes-vous certains que le captcha soit la solution ? (car pour mon ami.... cela ne change rien, c'est 20 à 40 messages par jour).

 

De mon côté :

J'ai bloqué les mails contenant .ru via les filtres mails d'ovh, mais cela ne change rien, j'ai reçu ce matin 3 mails .ru dans mon backoffice messages, clients sav.

Comme je vous le disais, j'ai lu tous vos messages, mais entre les disputes et les modules à télécharger ou les codes à modifier, je ne sais plus ce qui fonctionne réellement. :blink:

D'où ma seconde question : Serait-il possible de publier sur ce sujet (ou un tout neuf), "la" solution qui fonctionne (module efficace et confirmé, même payant) :P

Je suis en 1.6.0.8.

 

Et pour finir, ma troisième question (merci de ne pas me traiter d'andouille, mais je ne connais pas les méandres du comment du pourquoi des spammeurs) : est-ce que supprimer le formulaire de contact de la page "contact" empêcherait-il d'être spammé (ou ont-ils un script auto tout prêt qui n'a pas besoin que ce formulaire existe réellement ?) ? Car j'ai dans l'idée, si toutes les solutions proposées ne fonctionnent pas, de garder la page contact mais de supprimer le formulaire et de dire aux gens de me contacter via ma page FB. ^_^

 

Voilà, merci à tous pour vos réponses à venir.

Share this post


Link to post
Share on other sites

Bah si vous avez réellement lu vous avez la réponse hein^^

Le captcha seul (javascript) ne sert à rien contre les robots mais notre solution js + index.php ne laisse passer personne.

Share this post


Link to post
Share on other sites

Les 2 solutions de ce topic fonctionnent.

L'une utilise un module (qui évoluant dans l'urgence a eu quelques bugs à régler).

L'autre utilise un patch du thème (header.tpl ou contact-form.tpl) et de l'index.php

Dans les 2 cas, il te faut des clé recaptcha google (publique et privée), ce qui déclenche l'injection du js google (via clé publique) et ce captcha google est contrôlé coté serveur (via clé privé)

 

Le formulaire de contact Prestashop, collecte un message, qu'il envoit d'une part dans le SAV et en copie en mail. Bloquer les mailer n'empèche pas le SAV d'être rempli.

Quand au problème de ton "pote", il devrait investiguer ce qu'il à mal implanté.

 

Enfin supprimer le formulaire n'empèche rien car les bots attaquent directement le controlleur. Pour bloquer violemment, tu peux supprimer controllers/front/ContactController.php (mais c'est très violent)

 

Edited by doekia (see edit history)

Share this post


Link to post
Share on other sites

Eolia, vous êtes gentille, vous intervenez très souvent pour aider les gens et cela est très gentil de votre part.

Mais par pitié, pouvez-vous (et je ne suis pas la seule à vous le demander), éviter de mettre "un tout petit peu moins" de moquerie et d'agressivité (ce n'est peut-être pas le terme exact) dans vos réponses ?

Si l'on vient ici

(et je l'ai bien précisé, dans ce sujet tout le monde apporte une solution et dans la foulée quelqu'un vient la détruire, donc on ne sait plus où l'on en est, il faut "analyser" chaque réponse et chercher la réponse qui va "casser" cette réponse... et au final on ne sait plus ce qui est à faire ou pas),

c'est que l'on est perdu et que l'on attend un peu d'aide, pas des "t'as qu'à lire c'est marqué et extraire ce qui te convient" ; "si tu as lu, tu as vu" ; etc....

Dans ce sujet chacun détruit l'intervention (solution) de l'un et de l'autre.

D'où mon message (avec trois petites questions) que j'ai "osé" poster en espérant ne pas recevoir un "t'as qu'à lire" ou bien "tu l'as lu".

 

Vous êtes vraiment gentille Eolia et je vous suis très sincèrement reconnaissante de vos interventions, très sincèrement j'insiste, mais s'il vous plaît, lorsque l'on vient poster ici, c'est que l'on est perdu. Et quand on prend le temps de détailler son message, comme je l'ai fait, on aimerait bien ne pas être moqué systématiquement. Les "petites piques" ne sont pas absolument nécessaires. :)

 

Donc, merci pour votre réponse " notre solution js + index.php ne laisse passer personne ", je vais donc rechercher dans ces trois pages (sic) "laquelle" des interventions décrit comment mettre en place (sans avoir fait l'ENA) js + index.php. Et si je n'y arrive pas, j'appliquerais alors ma "solution FB" (...) sans ayant eu de réponse à celle-ci. Ou voir pour un module gratuit ou payant (objet de ma question deux).

  • Like 1

Share this post


Link to post
Share on other sites
Le 27/01/2018 à 11:58 AM, Eolia a dit :

Non pour le BO, le captcha fonctionne en front office et empêche les nouveaux spams mais en aucun cas ne va "identifier" les spams déjà enregistrés.

Pour les supprimer, utilisez les filtres de recherche et supprimez-les à la main.Pour installer le re-captcha Google:

- Commencez par aller là et créez les clés pour votre domaine: https://www.google.com/recaptcha/admin

- Saisissez votre nom de domaine seul (pas de www ou http://, juste le domaine deshistoiresabroder.com)

- dans le fichier index.php, à la RACINE de votre site web, copiez ce code (remplacez l'existant) en mettant votre clé SECRETE à la place de XXXXXXX-the-secret-key-XXXXXXXXXX et en conservant les guillemets simples):


<?php
/*
* 2007-2015 PrestaShop
*
* NOTICE OF LICENSE
*
* This source file is subject to the Open Software License (OSL 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/osl-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 license@prestashop.com 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 <contact@prestashop.com>
*  @copyright  2007-2015 PrestaShop SA
*  @license    http://opensource.org/licenses/osl-3.0.php  Open Software License (OSL 3.0)
*  International Registered Trademark & Property of PrestaShop SA
*/
if (isset($_REQUEST['submitMessage'])){
	if (empty($_REQUEST['g-recaptcha-response'])){
		sleep(25);
		die('not human');
	}
	$opts = array('http' =>
					array(
						'method'  => 'POST',
						'header'  => 'Content-type: application/x-www-form-urlencoded',
						'content' => http_build_query(
							array(
									'secret' => 'XXXXXXX-the-secret-key-XXXXXXXXXX',
									'response' => $_REQUEST['g-recaptcha-response'],
							)
						),
					),
	);
	$stream = stream_context_create($opts);
	$captcha = @json_decode(file_get_contents('https://www.google.com/recaptcha/api/siteverify', false, $stream), true);
	if (empty($captcha) || empty($captcha['success']) || !$captcha['success']){
		sleep(25);
		die('not human'.PHP_EOL.print_r($captcha,1));
	}
}
require(dirname(__FILE__).'/config/config.inc.php');
Dispatcher::getInstance()->dispatch();

Dans le contact-form.tpl vous copiez ce code en début de fichier après les commentaires s'il y en a ( ou header.tpl  avant la fin de la balise </head>, en mettant votre clé PUBLIQUE à la place de XXXXXXX-the-public-key-XXXXXXXXXX et en conservant les guillemets simples):


<script>
var googlecaptchasitekey = 'XXXXXXX-the-public-site-key-XXXXXXXXX'; /* TODO: tune this https://www.google.com/recaptcha/admin */
$(document).ready(function(){
	var $forms = $('form.contact-form-box');
	if ($forms.length > 0){
		var captcha = $('<div class="g-recaptcha" data-sitekey="'+ googlecaptchasitekey + '">');
		var $submit = $forms.find('#submitMessage');
		$submit.before(captcha);
		$submit.click(function(event){
			if ($forms.find('#g-recaptcha-response').val().length == 0) {
				event.preventDefault();
				event.stopPropagation();
				return false;
			}
		});
	}
});
</script>
<script src='https://www.google.com/recaptcha/api.js?hl={$language_code}'></script>

Vérifiez que votre formulaire <form> a bien la classe "contact-form-box" sinon ajoutez-là

 

Share this post


Link to post
Share on other sites

Et non je ne suis pas "gentille" étant un homme^^

Nous avons répondu sur 3 posts différents et à chaque fois ces posts se sont remplis de personnes qui savent mieux ou proposent autre chose ou ne comprennent pas et demandent des explications.

Je ne suis pas responsable de l'état de ces posts et si j'en ouvre un 4ème, il sera pollué de la même manière.

Alors oui, il faut lire et trouver les bons éléments mais ce n'est pas la mer à boire non plus.

Share this post


Link to post
Share on other sites

:lol: J'ai toujours cru que vous étiez une femme. Bon, maintenant on peut dire "gentille" à un homme, c'est même recommandé si on ne veut pas se faire mal voir et être "tendance". :lol:

 

Oui, je comprends bien les "pollutions" (mais ce sont des gens qui pensent aussi pouvoir aider, je ne les blâme pas).

Merci à Doekia dont je n'avais pas encore vu le message.

Je vais étudier vos deux réponses à tête reposée et merci encore.

 

Share this post


Link to post
Share on other sites

Voilà, j'ai fait les manips de Monsieur :) Eolia.

Pas de page blanche, pas d'erreur, et un reCAPTCHA qui s'affiche bien et fonctionne.

Comment peut-on vérifier si cela fonctionne bien ? Juste attendre quelques jours pour constater (avec grand plaisir) qu'il n'y a plus de messages de spam ?

 

Share this post


Link to post
Share on other sites

Allez sur votre page de formulaire

Validez le captcha et oubliez le mail^^

Votre boutique va vous donnez un message d'erreur vous informant qu'il manque le mail

Faites F5 (ça re-ssoumet le formulaire mais sans le captcha) et regardez^^

Share this post


Link to post
Share on other sites

:(:(

20l4ti0lo@mail.ru     Webmaster     Français (French)         --     TKfKkoFvMpGONpBtjHjYtmLb Вы попaли...     24/02/2018 17:34:23

Share this post


Link to post
Share on other sites

Vous avez effectué le test ci-dessus ?

Une url de votre page contact svp ?

Share this post


Link to post
Share on other sites

Si les heures de ton log sont correctes, si tu as mis en oeuvre à peu près au moment où tu as posté et si tu es dans le fuseau horaire france, alors ce mail a été envoyé avant que tu ne mette le captcha en marche.

Le recaptcha empêche les robots d'utiliser le formulaire, mais il ne peut rien pour les mails déjà dans la queue de ton serveur de mail (mailer)

Share this post


Link to post
Share on other sites

Bonjour,

Oui, j'ai fait les tests indiqués :)

Il est 10h56, je n'ai pas reçu de nouveaux mails depuis. Je vous tiens au courant.

Bon dimanche et merci encore. :)

Share this post


Link to post
Share on other sites

L'un de mes sites rencontres le même problème sous prestashop 1.5.4.0, j'ai fait les manipulations sur les fichiers index et contact-form mais le résultat est un peu trop efficace ^^. Si je ne clique pas sur le captcha l'envoie de mail est impossible (normal jusque là) mais en cliquant dessus si j'ai un mail ou non je ne suis pas considéré comme humain après un long chargement. Une idée de ce qui pourrait causer cela ?

Share this post


Link to post
Share on other sites

Vous n'avez pas du mettre la clé SECRÈTE dans index.php...

Share this post


Link to post
Share on other sites
il y a 30 minutes, Eolia a dit :

Vous n'avez pas du mettre la clé SECRÈTE dans index.php...

Malheureusement si, j'ai re c/c la clé secrète au cas où il y aurait eu un espace mais non rien ne change. J'ai également déplacé le code de contact-form.tpl dans header.tpl mais cela ne venait pas de là.

 

Par contre si je supprime le bout de code de l'index tout fonctionne correctement sauf le filtrage des bots évidemment, j'ai bien un message d'erreur si je ne mets pas de mail ect.

Edited by rebo (see edit history)

Share this post


Link to post
Share on other sites

Ta clé secrète est à mettre dans l'index.php et ta clé publique dans le tpl

Share this post


Link to post
Share on other sites
Il y a 2 heures, doekia a dit :

Ta clé secrète est à mettre dans l'index.php et ta clé publique dans le tpl

C'est le cas d'où mon incompréhension.

Share this post


Link to post
Share on other sites

Tu as forcément loupé un truc...

 

Dans ton index.php ajoute, juste après;

$captcha = @json_decode(file_get_contents('https://www.google.com/recaptcha/api/siteverify', false, $stream), true);

Ceci et donne nous le résultat:

 

die(var_dump($captcha));

Share this post


Link to post
Share on other sites

NULL, je suppose que cela veut dire que la clé public ou privée n'est pas envoyé ?

Share this post


Link to post
Share on other sites

dans le tableau $opts, entre header et content ajoutez ceci (et laissez votre var_dump):

 

'ignore_errors' => true,

 

et redonnez-nous le message.

Share this post


Link to post
Share on other sites

Très curieux...

Vous avez accès aux logs d'erreurs sur votre serveur ?

Je pense que le problème vient de votre configuration serveur.

Share this post


Link to post
Share on other sites

Je ne vois que des access logs sur mon interface de serveur donc je ne pense pas. Au niveau de l'intégration serveur google re captcha demande l'adresse ip de l'utilisateur final en optionnel, cela pourrait fonctionner avec ?

 

J'ai supprimé le code de mes fichiers car j'ai remarqué que cela bloquait également l'envoie de messages depuis l'historique de commandes de mes clients. Donc j'ai tout repris de 0 avec ce que fourni google. Tout est en place mais côté serveur ça bloque un peu.

 

J'ai repris votre code et y ai ajouté une autre façon de procéder

 

if (isset($_REQUEST['submitMessage'])){
	if (empty($_REQUEST['g-recaptcha-response'])){
		sleep(5);
		die('not human');
	}
	// Ma clé privée
	$secret = "ma clé secrète";
	// Paramètre renvoyé par le recaptcha
	$response = $_POST['g-recaptcha-response'];
	// On récupère l'IP de l'utilisateur
	$remoteip = $_SERVER['REMOTE_ADDR'];
	
	$api_url = "https://www.google.com/recaptcha/api/siteverify?secret=" 
	    . $secret
	    . "&response=" . $response
	    . "&remoteip=" . $remoteip ;
	
	$decode = json_decode(file_get_contents($api_url), true);
	
	if ($decode['success'] == true) {
		// C'est un humain
	}
	
	else {
		die('not human'); // C'est un robot ou le code de vérification est incorrecte
	}
}

 

J'ai pu vérifier que l'url renvoyée par google comprend bien ma clé privée, la réponse et l'ip, tout est en ordre j'ai tout les éléments mais la fonction json_decode n'a pas l'air de fonctionner correctement car je pars inévitablement sur not human donc la réponse à decode['success'] est false.

 

Second problème l'envoie de messages via l'historique de commandes, s'il n'y a pas de captcha cela va obligatoirement envoyer balader ces messages là, il faudrait faire une exception pour ce cas là mais je ne vois pas trop. 

 

Edited by rebo (see edit history)

Share this post


Link to post
Share on other sites

ajoutez le captcha sur l'id #sendOrderMessage dans votre header.tpl

Share this post


Link to post
Share on other sites

Ou rajoutez la classe "contact-form-box" au form de orderdetail.tpl

Share this post


Link to post
Share on other sites

se pourrait-il que ta config serveur passe par un frontal (varnish, haproxy, que sais-je, ...) qui masque l'ip du client ?

affiche

die($remoteip.': not human');

et compare avec ton ip externe

 

Share this post


Link to post
Share on other sites

Bien j'ai ajouté le captcha sur le formulaire de l'historique de commande donc il y  aura plus de blocage à ce niveau reste à comprendre pourquoi le décodage ne me renvoie rien du tout, le champ de $decode['success'] est vide tout $decode l'est en fait. J'ai vérifié l'adresse ip renvoyé par ipremote et la mienne c'est la même.

Edited by rebo (see edit history)

Share this post


Link to post
Share on other sites

Enlève le json_decode, débug la réponse brute.

Je ne vois qu'une seule raison possible maintenant, c'est que l'appel à l'url de google plante (soit à cause du TLS1.2 non accepté par ton serveur, soit, le file_get_contents en mode url bloqué par l'hébergement

Share this post


Link to post
Share on other sites

J'ai viré le file_get_contents de la fonction mais cela ne change pas, l'url est bien entièrement passée dans le json_decode.

 

Voilà la forme de l'url passé dans json_decode, évidemment j'ai masqué mon ip et ma clé privée.

url.png

Edited by rebo (see edit history)

Share this post


Link to post
Share on other sites

je n'ai pas compris ta réponse "viré le file_get_contents" c'est lui qui communique avec google, si tu le vire rien ne fonctionne.

dump le retour complet du file_get_contents (sans le passer à json_decode),

vérifie également que ton serveur sait résoudre au niveau dns www.google.com (rare mais des serveurs ayant des dns boiteux ça existe)

si le résultat est null, converti l'appel file_get_contents en appel curl et voir si ce dernier est plus volubile concernant l'erreur.

Et une url serait clairement la bienvenu si tu veux que nous tentions de t'aider

Share this post


Link to post
Share on other sites

Je vous ai fourni un screen de l'url sans l'ip et sans la clé secrète dans le message au dessus par contre file_get_contents($api_url) ne me renvoie effectivement rien et je ne sais pas trop quelle fonction curl je dois utiliser il y en a tellement; à tout hasard j'ai utilisé celle-ci curl_error (file_get_contents($api_url)); qui ne renvoie rien également.

Share this post


Link to post
Share on other sites

J'ai pu résoudre mon problème, c'était bien le file_get_contents qui ne passait pas chez moi, surement une fonction désactivée par l'hébergeur.

Mon code sur l'index donne ceci désormais

if (isset($_REQUEST['submitMessage'])){
	if (empty($_REQUEST['g-recaptcha-response'])){
		sleep(5);
		die('not human');
	}
	// Ma clé privée
	$secret = "ma clé secrète";
        // Paramètre renvoyé par le recaptcha
	$captcha = $_POST['g-recaptcha-response'];

$curl = curl_init();
curl_setopt_array($curl, array(
    CURLOPT_RETURNTRANSFER => 1,
    CURLOPT_URL => 'https://www.google.com/recaptcha/api/siteverify',
    CURLOPT_POST => 1,
    CURLOPT_POSTFIELDS => array(
        'secret' => $secret,
        'response' => $captcha
    )
));
$response = curl_exec($curl);
curl_close($curl);

	if ($response ['success'] == true) {
		// C'est un humain
	}
	
	else {
		die('not human'); // C'est un robot ou le code de vérification est incorrecte
	}
}

Je vous remercie pour votre patience et votre aide je ne recevrai plus spam de bots désormais :).

Edited by rebo
édition code (see edit history)
  • Like 1

Share this post


Link to post
Share on other sites

Salut,

je viens d'avoir la visite de mail.ru à l'instant  ...  bref le script de base de l'index.php ne fonctionne pas, par contre celui de rebo c ok :)

 

Merci a Doekia, Eolia, Rebo et les autres pour ce patch et pour vos efforts 

Encore merci :)

Share this post


Link to post
Share on other sites
il y a 3 minutes, ritopina a dit :

je viens d'avoir la visite de mail.ru à l'instant  ...  bref le script de base de l'index.php ne fonctionne pas, par contre celui de rebo c ok :)

Quand il est mal installé effectivement^^

Aucun bot ne peux passer l'index.php si son POST contient "submitMessage" et qu'il n'y a pas un retour positif de Google le concernant.

Donc:

- Soit votre thème n'utilise pas cette classe,

- Soit vous vous êtes mélangé les pinceaux entre clé publique et clé privée...

Share this post


Link to post
Share on other sites

j'utilise prestashop 1.7 et le theme warehouse, contatct-form-tpl ce trouve dans le theme modules/contactform/views/templates/widget/contactform.tpl

 

Cela viens surement du theme

 

 

Edited by ritopina (see edit history)

Share this post


Link to post
Share on other sites

Dans la 1.7 les js ne doivent pas être mis dans les tpl.

Nous n'avons même pas testé notre patch pour cette version vu qu'elle n'est pas fonctionnelle à ce jour

 

Share this post


Link to post
Share on other sites

En 1.7, Le form n'a d'ailleurs pas de classe par défaut donc le code ne se déclenche pas, donc normalement le formulaire ne fonctionne pas

Le bouton submit n'a lui non plus aucune classe.

Je me demande comment tu peux avoir le recaptcha sur ta page!

Une url?

 

Mais au final la 1.7, déjà que c'est une version foireuse, PS fait des mises à jour tous les mois, comment est-il possible qu'ils n'intègrent rien alors que ce type d'attaque est (re-)devenu le sport fétiche depuis presque 5 mois.

 

Share this post


Link to post
Share on other sites

j'ai mis 

<div class="g-recaptcha" data-sitekey="xxxxxxxxxxxxxxxxx cle privé xxxxxxxxxxxxxxxxxxxxx"></div>
<script src='https://www.google.com/recaptcha/api.js'></script>

dans contactform.tpl

+ le index de rebo

et cela fonctionne : si j'envoi sans utiliser le recaptcha cela m'envoi sur une page blanche avec no humain et avec le recaptcha le message et bien envoyer

 

et je n'ai pas eu de spam depuis cette mise en place

 

Ps: je t'envoi l'url en message privé

Edited by ritopina (see edit history)

Share this post


Link to post
Share on other sites

@rebo

$response == true?

Tu testes seulement que google te retourne une réponse (cast en booléen), pas que celle-ci valide le recaptcha.

Edited by doekia (see edit history)

Share this post


Link to post
Share on other sites

Voilà @ritopina je viens de t'envoyer un joli message sur ton formulaire de contact en forgeant le token sans cliquer le recaptcha.

Ton site est donc une passoire

Share this post


Link to post
Share on other sites

Bonjour Messieurs 

 

ma question plus haut était de savoir si il existait un module de filtrage sans captcha

 

si oui où puis je trouver ce module 

j'ai plein de messages russe sur mon SAV

 

Merci

Share this post


Link to post
Share on other sites

du style suite au formulaire on teste une liste noire pour ne pas inscrire le message ... point barre !!  :)

 

Share this post


Link to post
Share on other sites

@ritopina puisque tu utilises le code de @rebo décodez la réponse comme dans le snippet initial (json_decode) et testez son statut.

@gillouarm a quelle vitesse penses-tu qu'il est possible d'inventer des noms de mails valide ? Cette approche est totalement irréaliste.

Share this post


Link to post
Share on other sites

Très drôle avec 15000 IP changeantes toutes les 20 secondes^^

Il y a d'autres méthodes mais pas applicables sur un serveur mutualisé.

En quoi le captcha qui est le seul fonctionnel aujourd'hui, vous dérange-t-il ?

 

Share this post


Link to post
Share on other sites
il y a 8 minutes, gillouarm a dit :

Bonjour Messieurs 

 

ma question plus haut était de savoir si il existait un module de filtrage sans captcha

 

si oui où puis je trouver ce module 

j'ai plein de messages russe sur mon SAV

 

Merci

Bonjour, si vous prenez un tout petit peu de temps et que vous remontez le fil des messages, vous trouverez le lien vers le module....

Je comprends pourquoi certains "bénévoles" sur les forums sont très agacés....

Sincèrement

 

Share this post


Link to post
Share on other sites