Jump to content

Recommended Posts

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 !

Link to comment
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;
   }

 

Link to comment
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

 

Link to comment
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)

Link to comment
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 ? 

Link to comment
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"

Link to comment
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
Link to comment
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

Link to comment
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.

Link to comment
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
Link to comment
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

 

[email protected]

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$.

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

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

 

[email protected]

 

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

 

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

Link to comment
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

Link to comment
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

 

 

 

 

Link to comment
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
Link to comment
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

Link to comment
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)
Link to comment
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
Link to comment
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

Link to comment
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 ?

Link to comment
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.

Link to comment
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)
Link to comment
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
Link to comment
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 [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/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à

 

Link to comment
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.

Link to comment
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.

 

Link to comment
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 ?

 

Link to comment
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)

Link to comment
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 ?

Link to comment
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)
Link to comment
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));
Link to comment
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)
Link to comment
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)
Link to comment
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

Link to comment
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

Link to comment
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.

Link to comment
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
Link to comment
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...

Link to comment
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.

 

Link to comment
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)
Link to comment
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

 

Link to comment
Share on other sites

sauf que mail.ru c'est l'équivalent de hotmail. D'ailleurs mail.ru est tellement au courant que si vous tentez de répondre à l'un de ces mails, mail.ru vous répond immédiatement spam. Il y a 15 jours les bots utilisaient qq.com, et demain un autre domaine en .men, .org, .biz, .info, ...

postfix/smtp[18970]: D9B6DB40860: to=<sy7rerzdo@mail.ru>, relay=mxs.mail.ru[94.100.180.104]:25, delay=9.1, delays=0.05/0.01/0.58/8.5, dsn=5.0.0, status=bounced (host mxs.mail.ru[94.100.180.104] said: 550 spam message rejected. Please visit http://help.mail.ru/notspam-support/id?c=q0Oofp1-twR_28YEo4Ols2uzFEV8_W69DKLqJ1_v5c0NAAAADsEBACKnoAE~ or  report details to [email protected]. Error code: 7EA843AB04B77E9D04C6DB7FB3A583A34514B36BBD6EFD7C27EAA20CCDE5EF5F. ID: 0000000D0001C10E01A0A722. (in reply to end of DATA command))

 

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...