thomascp Posted May 18, 2017 Share Posted May 18, 2017 (edited) 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. Edited May 18, 2017 by thomascp (see edit history) Link to comment Share on other sites More sharing options...
doekia Posted May 18, 2017 Share Posted May 18, 2017 Il est probable que le botnet ne passe plus par le formulaire et/ou ait trouvé/déposé une porte dérobée. Il va falloir passer du temps à déverminer, analyser les logs, etc Est-tu absolument sûr que ce soit le formulaire qui serve d'origine? Est-tu sur un mutu? un dédié? PM moi éventuellement Link to comment Share on other sites More sharing options...
Eolia Posted May 18, 2017 Share Posted May 18, 2017 (edited) Lol Votre captcha ne sert à rien^^ Vous avez dû recevoir un gentil message... Edited May 18, 2017 by Eolia (see edit history) Link to comment Share on other sites More sharing options...
thomascp Posted May 18, 2017 Author Share Posted May 18, 2017 Merci, @Eolia cela fait avancer mon problème, si vous n'avez quelque chose de plus constructif à dire, merci de vous abstenir. @doekia je suis presque sur qu'effectivement il ne passe pas par le formulaire et je suis sur un dédié, j'essaye de trouver la piste dans les logs mais c'est pas simple ! Link to comment Share on other sites More sharing options...
doekia Posted May 18, 2017 Share Posted May 18, 2017 Ce que Eolia te dit, et c'est excessivement pertinent, c'est que tu as mis un captcha qui n'est simplement pas vérifié, donc c'est comme si tu n'avais rien mis. Pense que les gens veulent t'aider et que donc leur remarques n'ont en aucune manière à être mal prise. Poses toi dans ce cas la question, "pourquoi quelqu'un irait perdre son temps pour répondre cela!" Link to comment Share on other sites More sharing options...
thomascp Posted May 18, 2017 Author Share Posted May 18, 2017 (edited) Désolé 20 ans d'expérience sur le net m'ont appris que beaucoup de gens sont devenus maitre dans l'art de ne rien dire Sinon je ne sais toujours pas comment faire pour que mon captcha soit vérifié... étant donné que c'est un module que j'ai installé je pensez (bêtement) qu'il fonctionnait... Je l'ai testé et il m'a effectivement rejeté si je ne le coche pas !... Bref toujours au point mort, merci en tout cas de votre aide. D'autre part le test qu'eolia a réalisé ne sert pas à grand chose car qu'un humain puisse remplir le formulaire n'est pas anormal.... Edited May 18, 2017 by thomascp (see edit history) Link to comment Share on other sites More sharing options...
doekia Posted May 18, 2017 Share Posted May 18, 2017 Avec 20 ans d'expérience, tu crois encore qu'il y a une armée de personnes qui cliquent pour envoyer du spam? Ton module injecte sa nouvelle url, mais si j'ai un script qui utilise toujours l'ancienne url, ton captcha est ignoré (puisque non bloqué par prestashop). Maintenant je comprends mieux pourquoi tu penses que les autres cultivent l'art de ne rien dire.... parler dans le vide s'est frustrant Link to comment Share on other sites More sharing options...
Eolia Posted May 18, 2017 Share Posted May 18, 2017 Il y en a surtout qui devraient avoir l'art de s'abstenir plutôt que de râler sans comprendre. Je vous montre en 1 ligne comment soumettre un formulaire sans être géné par quoique ce soit. Si vous voulez le sécuriser contre le spam c'est au niveau de php qu'il faut intervenir. Après, si un chinois vous en veut il y a surement une raison car le spam c'est en masse, ce n'est pas que vers un bo^^ Link to comment Share on other sites More sharing options...
thomascp Posted May 18, 2017 Author Share Posted May 18, 2017 Désolé mais je ne comprends pas votre phrase, pourquoi parlez vous de backoffice ? Link to comment Share on other sites More sharing options...
Eolia Posted May 18, 2017 Share Posted May 18, 2017 Il arrivent où les messages de spam ? Sur un prestashop classique, c'est dans le BO (et dans la messagerie du client s'il a les notifications vers sa boite mail) Link to comment Share on other sites More sharing options...
thomascp Posted May 18, 2017 Author Share Posted May 18, 2017 Oui ils arrivent dans le backoffice et par mail (sauf que dans le service postfix j'ai bloqué les mails). Link to comment Share on other sites More sharing options...
sf_tristanb Posted May 18, 2017 Share Posted May 18, 2017 (edited) 1/ De nombreux visiteurs vont tomber sur ce post, (ex: moi, vu que ça nous arrive aussi en ce moment sur certains de nos prestashops) et lire vos embrouilles à 2 balles c'est pas très "orienté solutions" ;-) 2/ Nous avons aussi utilisés plusieurs modules de captcha, mais qui sont validés uniquement en POST. Et comme démontré par @Eolia, le captcha n'est pas validé lorsque l'URL est appelée en GET. 3/ Cela vient t'il du module de captcha qui n'est pas bon ? où d'un problème core prestashop qui permet de submit un formulaire même en GET pour le module SAV ? PS: @Eolia, peux tu supprimer le domaine du lien en GET que tu as mis car j'ai voulu cliqué pour prendre exemple, et du coup j'ai envoyé des SPAM et je pense que je ne serai pas le seul =) Merci à vous. Edited May 18, 2017 by sf_tristanb (see edit history) Link to comment Share on other sites More sharing options...
thomascp Posted May 18, 2017 Author Share Posted May 18, 2017 Bonjour, sf_tristanb bienvenu dans la conversation et si avez des pistes je suis preneur, j'ai creusé du coté de la function isEmail de la classe Validate pour ajouter un test maison mais sans succès pour l'instant. Link to comment Share on other sites More sharing options...
Eolia Posted May 18, 2017 Share Posted May 18, 2017 3/ Cela vient t'il du module de captcha qui n'est pas bon ? où d'un problème core prestashop qui permet de submit un formulaire même en GET pour le module SAV ? Vous ne connaissez pas la fonction Prestashop Tools::getValue() ? Que ce soit en POST ou en GET, elle récupère tout ce qui passe... Maintenant pour vos soucis de "spam" c'est plutôt sur le nombre de soumission/sec qu'il faut jouer^^ Link to comment Share on other sites More sharing options...
thomascp Posted May 18, 2017 Author Share Posted May 18, 2017 Il n'y a pas plus d'une par minute, mais je ne vois pas ni ou ni comment implémenter un test. Link to comment Share on other sites More sharing options...
Eolia Posted May 18, 2017 Share Posted May 18, 2017 Regardez du côté de contactController.php Link to comment Share on other sites More sharing options...
doekia Posted May 18, 2017 Share Posted May 18, 2017 Il suffit de faire une rewriterule une fois votre captcha implanté pour bloquer l'usage de l'ancien url en get ou post. Link to comment Share on other sites More sharing options...
sf_tristanb Posted May 18, 2017 Share Posted May 18, 2017 (edited) @doekia Vu que c'est un formulaire qui se soumet sur la même URL, bloquer cette URL en get reviendrait à ne plus pouvoir acceder à la page du formulaire. GET -> /contactez-nous affiche le formulaire GET -> /contactez-nous?xxxxx=xxx soumet le formulaire IMO, soumettre un formulaire en appellant une URL en get est, par design, mauvais. Je ne sais pas pourquoi les devs du module SAV ont fait ça comme ça, et surtout, comment ça se fait que plus de personnes ne soient pas impactés. :-) Edited May 18, 2017 by sf_tristanb (see edit history) Link to comment Share on other sites More sharing options...
doekia Posted May 18, 2017 Share Posted May 18, 2017 Magnifique, noyé dans un verre d'eau Le formulaire ne contient submitMessage=1 que si quelqu'un tente de soumettre et après l'install du captcha ce n'est plus possible. CQFD Link to comment Share on other sites More sharing options...
sf_tristanb Posted May 18, 2017 Share Posted May 18, 2017 après l'install du captcha ce n'est plus possible Je pense que t'as du oublié de lire les messages qui faisaient mention qu'on utilise tous les deux des captcha Link to comment Share on other sites More sharing options...
doekia Posted May 18, 2017 Share Posted May 18, 2017 Après l'installation de ton captcha, le bouton submit est rerouté vers celui-ci (en post), donc personne ne peut utiliser /contactez-nous pour soumettre son message (avec submitMessage en paramètre), sauf un bot qui ne relit pas le formulaire !!!! Pour tout l'univers connu, http://le-site-de-ton-pauvre-client/modules/eicaptcha/eicaptcha-ajax.php est différent de http://le-site-de-ton-pauvre-client/contactez-nous Moi je lis les messages et j'essaie de comprendre... Link to comment Share on other sites More sharing options...
thomascp Posted May 18, 2017 Author Share Posted May 18, 2017 Ce que vous dites m'intrigue car j'ai réussi de nombreuses fois à utiliser le formulaire sans être bloqué (en cliquant le captcha bien sur)... Je suis de plus en plus perdu.... Link to comment Share on other sites More sharing options...
Thorfy Posted May 19, 2017 Share Posted May 19, 2017 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. Hello, Notre Boutique ce fait elle aussi spam mais j'ai peux etre une solution d'urgence... je vous fait un fichier contactController qui règlera temporairement le problème Je vous transmet ça des que c'est finie. Pour info nos equipes SAV ont visiblement identifié une liste des sites contenue dans les messages ... Je vous la fournie au cas ou. (NE CLICQUEZ PAS DESSUS) www.hubofa.com www.lehu201.com www.longhu90.com www.sega113.com www.zb557.com Link to comment Share on other sites More sharing options...
thomascp Posted May 19, 2017 Author Share Posted May 19, 2017 Merci beaucoup Thorfy, apparement depuis hier d'autres boutiques sont dans la même situation, un autre post est ouvert, cela ressemble de plus en plus à une faille à remonter ! Link to comment Share on other sites More sharing options...
thomascp Posted May 19, 2017 Author Share Posted May 19, 2017 La solution discuté ici semble fonctionnelle : https://www.prestashop.com/forums/topic/610111-spam-via-my-ecommerce-shop/?p=2557191 Link to comment Share on other sites More sharing options...
thomascp Posted May 19, 2017 Author Share Posted May 19, 2017 (edited) Fonctionnelle mais pas bien ... un override est à préconiser si on veut pas tout refaire à chaque fois. Et je vois pas l'intérêt de charger le js sur toutes les pages. +1 Précision importante effectivement ! Edited May 19, 2017 by thomascp (see edit history) Link to comment Share on other sites More sharing options...
Thorfy Posted May 19, 2017 Share Posted May 19, 2017 En effet cette solution peut être fonctionnel. Personnellement nous avons fait le choix de ne pas implémenter de captcha car nous nous adressons à un public de senior. J'ai donc développé un module qui fonctionnera autrement. Je vous le transmet sous peu. Il est gratuit bien entendu. (en revanche comme il s'agit d'un override automatique je doute qu'il soit compatible avec la solution proposé plus haut concernant la validation du captcha) Link to comment Share on other sites More sharing options...
Thorfy Posted May 19, 2017 Share Posted May 19, 2017 (edited) 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. Voila donc mon module vous n'avez plus qu'à l'installer antispamcontact.zip il est préconfiguré pour les attaques d'hier et aujourd'hui c'est un système de blackListing basique par des champs texte. (il n'est pas compatible avec la solution proposé plus haut: c'est à dire qu'il faut choisir soit la solution soit le module. Vous pouvez toujours cela dit faire un merge et appliquer cette solution dans l'override du module si vous avez le module captcha) un écran de configuration est dispo Désolé si le module n'est pas très design mais j'ai du le développer en urgence je le mettrai certainement à jour si vous le souhaitez Voila en espérant que ça puisse aider certain Edited May 19, 2017 by Thorfy (see edit history) 2 Link to comment Share on other sites More sharing options...
thomascp Posted May 19, 2017 Author Share Posted May 19, 2017 Merci beaucoup pour votre investissement ! Ca fait plaisir de voir des gens impliqués ! Je marque votre post comme solution, cela servira aussi à d'autres qui ne manqueront pas de venir chercher de l'aide ici, je ne pense pas être le seul. 1 Link to comment Share on other sites More sharing options...
P i l o u Posted May 19, 2017 Share Posted May 19, 2017 Bonjour Thorfy, Comment installer ton module stp ? Link to comment Share on other sites More sharing options...
Thorfy Posted May 19, 2017 Share Posted May 19, 2017 (edited) Bonjour Thorfy, Comment installer ton module stp ? bonjour, Alors commençons des le debut, Il vous faut la deuxieme version que je viens à l'instant d'upload. Ensuite pour l'installation il faut : - Aller dans l'onglet module de votre backOffice - puis en haut a droite "Ajouter un nouveau module" - choisissez le fichier fraichement téléchargé - puis appuyer sur "charger le module" le module va etre déposé sur votre serveur. Il faut maintenant l'installer: - chercher antispamcontact dans les modules - appuyer sur installer - il vous demandera l'autorisation d'etre installé. - appuyez sur "Continuer l'installation" - c'est terminé si vous souhaitez le configurer il suffit d'appuyer sur configurer ( mais il est déjà préconfiguré). Edited May 19, 2017 by Thorfy (see edit history) Link to comment Share on other sites More sharing options...
P i l o u Posted May 19, 2017 Share Posted May 19, 2017 Ah oui, avec la 2e version, ça va mieux ! 1 Link to comment Share on other sites More sharing options...
Thorfy Posted May 19, 2017 Share Posted May 19, 2017 (edited) comme je l'ai dis il s'agit d'une version developpé dans l'urgence l'interface n'est donc pas optimal... (vous pouvez par exemple ecrire 2 fois le meme texte.) en revanche elle est fonctionnelle. Je n'ai plus de problème de spam personnellement. Je developperai bientot une version permettant de supprimer les messages SPAM de l'onglet SAV (c'est en cours) Edited May 19, 2017 by Thorfy (see edit history) Link to comment Share on other sites More sharing options...
doekia Posted May 20, 2017 Share Posted May 20, 2017 Essayez ceci aussi http://area51.enter-solutions.com/snippets/74 3 Link to comment Share on other sites More sharing options...
P i l o u Posted May 20, 2017 Share Posted May 20, 2017 Bonjour Doekia, Peux-tu stp nous en dire plus ? Quel fichier modifier ? Comment ? Via un override ? Merci d'avance Link to comment Share on other sites More sharing options...
doekia Posted May 20, 2017 Share Posted May 20, 2017 (edited) Comme indiqué dans le snippet, header.tpl, Code à ajouter avant la balise </head> Et recopier la section en commentaire ( {* ... *} ) comme indiqué dans le snippet dans l'index.php à la racine du site Pour un thème non-standard il peut-être nécessaire d'ajuster le sélecteur à la ligne 5. Mais sur 90% des thèmes testé (14/15), le selecteur actuel fonctionne Edited May 20, 2017 by doekia (see edit history) 4 Link to comment Share on other sites More sharing options...
Thorfy Posted May 20, 2017 Share Posted May 20, 2017 (edited) c'est quand même dommage niveau opti de le mettre sur toutes les pages alors que ça concerne seulement le formulaire de contact non ? En revanche c'est clairement plus viable que mon module sur le long terme. Edited May 29, 2017 by Thorfy (see edit history) Link to comment Share on other sites More sharing options...
doekia Posted May 20, 2017 Share Posted May 20, 2017 (edited) Oui et non. 1/ Le cache du header est le même partout donc au final très peu de surcharge, quand à la librairie captcha de google, elle est caché par le navigateur, donc elle aussi aura au final peu d'impact. 2/ Si tu le souhaites, il te suffit d'encadrer la section dans un {if $page_name = 'contact'} {/if} 3/ Si nous avons d'autres pages à protéger, il suffit d'étendre le sélecteur (ligne 5 du snippet) J'ai fait le code dans une optique (béotien). Pour que l'on puisse le déployer/adapter avec vraiment très peu de compétences. PS: je viens de survoler ton module. Ne te décourage pas, Il mérite sûrement d'aller de l'avant car il faut d'autre contrôles que ne fait pas la captcha de google Edited May 20, 2017 by doekia (see edit history) 1 Link to comment Share on other sites More sharing options...
Eolia Posted May 20, 2017 Share Posted May 20, 2017 c'est quand même dommage niveau opti de le mettre sur toutes les pages alors que ça concerne seulement le formulaire de contact. En revanche c'est certainement plus viable que mon module sur le long terme. On parle de quoi là ? 5 lignes de js dans le header ? Faudrait pas trop chipoter sur l'optimisation quand on voit certains modules qui chargent en mémoire whatmille data sur toutes les pages juste pour afficher 3 étoiles sur une page produit... Doekia fournit gratuitement et clé en main une solution à la portée de tous et votre 1er commentaire commence par remettre en cause une certaine "optimisation". Un "Merci" aurait été plus préférable^^ C'est à se demander s'il faut continuer à proposer des solutions sur ce forum... 2 Link to comment Share on other sites More sharing options...
ritopina Posted May 20, 2017 Share Posted May 20, 2017 Merci à vous 2 doekia et Thorfy Link to comment Share on other sites More sharing options...
stephabcde Posted May 21, 2017 Share Posted May 21, 2017 Hello, Vous êtes des génies ! Merci à vous ! Stéphane Link to comment Share on other sites More sharing options...
Thorfy Posted May 21, 2017 Share Posted May 21, 2017 On parle de quoi là ? 5 lignes de js dans le header ? Faudrait pas trop chipoter sur l'optimisation quand on voit certains modules qui chargent en mémoire whatmille data sur toutes les pages juste pour afficher 3 étoiles sur une page produit... Doekia fournit gratuitement et clé en main une solution à la portée de tous et votre 1er commentaire commence par remettre en cause une certaine "optimisation". Un "Merci" aurait été plus préférable^^ C'est à se demander s'il faut continuer à proposer des solutions sur ce forum... C'est dingue le ton méprisant que vous pouvez employer quand vous répondez aux messages (pour au final ne rien dire) J'ai simplement demander à doekia son avis sur la question il m'as répondu de manière extrement clair et technique. Ça s'arrête là. (Je n'ai pas la science infuse je ne développe que depuis peut) Pour ce qui est de "c'est à ce demander s'il faut continuer de proposer des solutions" il me semble que oui et même plutôt deux fois qu'une: j'aurais pu tout simplement donner un override du fichier et basta ... Mais voilà je me suis dis que certaines personnes peuvent être dans le même problème sans pour autant avoir jamais codé, j'ai donc investi de mon temps pour leur offrir une solution provisoire simple d'utilisation. Donc merci mon cher où ma chère de bien réfléchir avant d'écrire des messages condescendant envers les autres. 4 Link to comment Share on other sites More sharing options...
Bondaty and Co Posted May 22, 2017 Share Posted May 22, 2017 C'est dingue le ton méprisant que vous pouvez employer quand vous répondez aux messages (pour au final ne rien dire) J'ai simplement demander à doekia son avis sur la question il m'as répondu de manière extrement clair et technique. Ça s'arrête là. (Je n'ai pas la science infuse je ne développe que depuis peut) Pour ce qui est de "c'est à ce demander s'il faut continuer de proposer des solutions" il me semble que oui et même plutôt deux fois qu'une: j'aurais pu tout simplement donner un override du fichier et basta ... Mais voilà je me suis dis que certaines personnes peuvent être dans le même problème sans pour autant avoir jamais codé, j'ai donc investi de mon temps pour leur offrir une solution provisoire simple d'utilisation. Donc merci mon cher où ma chère de bien réfléchir avant d'écrire des messages condescendant envers les autres. Salut Thorfy, Merci pour ce module qui dépanne bien et est adapté à tous. Je suis tout à fait de ton avis également concernant la récurrence des messages condescendant de certains (ou plutôt toujours les mêmes). C'est vraiment plus que désagréable, il serait peut être temps que Prestashop fasse quelque chose. Des formations sur le savoir vivre ? ou bien Comment se comporter en société quand on est un Geek mégalomane ? Christophe 2 Link to comment Share on other sites More sharing options...
thomascp Posted May 22, 2017 Author Share Posted May 22, 2017 Ha ok je vois que je suis pas le seul à avoir se ressenti... j'ai eu peur d'être un peu un vieux c** (40 ans déjà...) Mais qu'importe le topic est solved et avec deux solutions qui plus est ! Que demander de plus. 3 Link to comment Share on other sites More sharing options...
doekia Posted May 22, 2017 Share Posted May 22, 2017 Je n'ai pas ressenti d'agression dans le message de @Thorfy mais @Eolia oui. Et pour être honnête, j'aurais pu sans la mention à la dernière phrase. Je peux parfaitement comprendre son agacement. Il contribue massivement à l'entraide sur ce forum tout comme moi et nous somme régulièrement mis à l'index par des "membres" que je qualifierai de plus en plus de "parasite". Une multitude de nouveau arrivant avec un connaissance niveau mikado, qui n'ont aucun remerciement, et sont à mettre en doute les réponses que nous leurs fournissons. Donc oui @Eolia s'est emporté et encore une fois je le comprend. Si vous ne connaissait pas @Eolia et son aide et compétences sur ce forum, alors désolé, vous devriez. Quand a demander à Prestashop de faire quelque chose. Corriger le code pour éviter que la faille se reproduise ailleurs ? Que nenni. Cette faille a été reporté depuis des années. Lettre morte. Faire bannir le verbe haut d'un membre ayant tellement fait depuis tant de temps - Il peuvent le faire, mais la communauté se portera t'elle mieux si elle se prive des seuls derniers vrais membres - j'en doute. Ce qu'@Eolia a dit peut-etre un peu fort c'est "remerciez ceux qui aident" 3 1 Link to comment Share on other sites More sharing options...
Nicowcow Posted May 24, 2017 Share Posted May 24, 2017 J'ai installé le recaptcha de Google sur mon formulaire mais les spams continuent d'affluer. http://vaisongroupeb.com/nous-contacter Peut être faut-il attendre que le script du hacker soit terminé ? Log du vilain hacker chinois 121.58.209.251 - - [24/May/2017:15:10:26 +0200] "POST /nous-contacter HTTP/1.1" 200 22750 vaisongroupeb.com "http://vaisongroupeb.com/nous-contacter" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36" "-" Link to comment Share on other sites More sharing options...
doekia Posted May 24, 2017 Share Posted May 24, 2017 Il est probable que nombre de post soient actuellement en "queue'. Tu peux également mettre un "sniffer" pour ausculter le contenu du post est vérifier que la réponse est bien "erreur" Dans l'implantation que j'ai faites, je fait une pause de 25 secondes pour ralentir/dégouter le bot avant de l'envoyer se faite "*****" Link to comment Share on other sites More sharing options...
Nicowcow Posted May 24, 2017 Share Posted May 24, 2017 Merci pour ta réponse ! C'était bien ça, il y avait trop de posts en queue. Tout est redevenu calme dans mon SAV \o/ Peux-tu m'en dire plus sur le "sniffer" ? Comment mettre en place un sniffer ? Si tu as un bon tuto sous la main Link to comment Share on other sites More sharing options...
doekia Posted May 24, 2017 Share Posted May 24, 2017 (edited) heu... un tuto? pour écrire une ligne de php ? if ($_SERVER['REQUEST_METHOD'] == 'POST') file_put_contents(__DIR__.'/sniff.txt',print_r(array(time(),$_SERVER,$_GET,file_get_contents('p h p : / / input')),1),FILE_APPEND); Edited May 24, 2017 by doekia (see edit history) Link to comment Share on other sites More sharing options...
Thorfy Posted May 29, 2017 Share Posted May 29, 2017 (edited) Voici la liste mise à jour des sites à bannir dans les messages: www.hubofa.com www.lehu201.com www.longhu90.com www.sega113.com www.zb557.com sj5666.com www.ZHOUJI6.COM www.sega117.com www.sega7.com huyabo.com www.new8882.com sega09 xieyiceshi Edited May 31, 2017 by Thorfy (see edit history) Link to comment Share on other sites More sharing options...
geo3469 Posted June 1, 2017 Share Posted June 1, 2017 (edited) Voila donc mon module vous n'avez plus qu'à l'installer antispamcontact.zip il est préconfiguré pour les attaques d'hier et aujourd'hui c'est un système de blackListing basique par des champs texte. (il n'est pas compatible avec la solution proposé plus haut: c'est à dire qu'il faut choisir soit la solution soit le module. Vous pouvez toujours cela dit faire un merge et appliquer cette solution dans l'override du module si vous avez le module captcha) un écran de configuration est dispo Désolé si le module n'est pas très design mais j'ai du le développer en urgence je le mettrai certainement à jour si vous le souhaitez Voila en espérant que ça puisse aider certain Merci pour cette solution bonne journée Edited June 1, 2017 by geo3469 (see edit history) Link to comment Share on other sites More sharing options...
Thorfy Posted June 5, 2017 Share Posted June 5, 2017 Mise à jour du module: antispamcontact.zip v1.2 les filtre sont aussi actif sur les emails exemple: @qq.com exclu tout les messages provenant des mail contenant @qq.com Link to comment Share on other sites More sharing options...
Jpc_des_dombes Posted June 6, 2017 Share Posted June 6, 2017 Bonjour, Grand merci Thorfy pour ce module. Je galère depuis 3 semaines avec ces spams aux yeux bridés. Bonne journée Link to comment Share on other sites More sharing options...
ritopina Posted June 15, 2017 Share Posted June 15, 2017 Merci Thorfy Link to comment Share on other sites More sharing options...
jcuenin Posted June 29, 2017 Share Posted June 29, 2017 (edited) Merci à tous pour vos solutions, j'ai un client qui vient d'avoir ce problème et vos commentaires m'ont bien aidé. Ps : pour arrêter le pb du spam rapidement avant d'appliquer les correctifs mentionnés dans ce thread, vérifier vos logs serveur, récupérez l'adresse ip du spammeur et bloquez la via un Deny from adresseipici dans le htaccess. Bonne journée! Edited June 29, 2017 by jcuenin (see edit history) 1 Link to comment Share on other sites More sharing options...
Thorfy Posted June 30, 2017 Share Posted June 30, 2017 (edited) Merci à tous pour vos solutions, j'ai un client qui vient d'avoir ce problème et vos commentaires m'ont bien aidé. Ps : pour arrêter le pb du spam rapidement avant d'appliquer les correctifs mentionnés dans ce thread, vérifier vos logs serveur, récupérez l'adresse ip du spammeur et bloquez la via un Deny from adresseipici dans le htaccess. Bonne journée! le problème de cette methode: c'est qu'en réalité vous bloquez non pas les bot chinois, mais les adresse ip des compagnies de mail (gmail en chine l'équivalent c'est qq.com) Donc plus aucun mail provenant de leur serveur n'aboutirons ou se connecterons sur votre boutique (selon la config que vous avez fait). Personnelement nous travaillons en liens avec la chine. Blacklisté les adresses nous a empéché de contacter certains clients ou entreprises qui était hébergés sur ces même serveurs. (Si vous n'avais pas l'intention de travailler avec eux vous pouvez le faire les yeux fermé) PS: autant pour moi, je viens de voir que c'était votre solution en attendant l'application des differents patch Edited June 30, 2017 by Thorfy (see edit history) 1 Link to comment Share on other sites More sharing options...
doekia Posted June 30, 2017 Share Posted June 30, 2017 Entre passer du temps à récupérer l'ip qui va être +/- celle d'un proxy, d'un infecté, ... entrer cette liste sans fin dans le .htaccess (attention aux syntaxes apache 2.4+) et appliquer un patch qui prends moins de temps à déployer et qui de toute manière devra l'être,j'opte pour la solution la plus efficace, patch direct. Link to comment Share on other sites More sharing options...
Parc Info Posted January 22, 2018 Share Posted January 22, 2018 On 05/06/2017 at 12:12 PM, Thorfy said: Mise à jour du module: antispamcontact.zip v1.2 les filtre sont aussi actif sur les emails exemple: @qq.com exclu tout les messages provenant des mail contenant @qq.com Bonjour, J'ai installé ce module en indiquant *@qq.com a blaklister mais ça continue quand même. Cordialement GM Link to comment Share on other sites More sharing options...
Thorfy Posted January 22, 2018 Share Posted January 22, 2018 Bonjour, J'ai plusieurs questions avant de pouvoir vous répondre Avez vous mis l'étoile dans le filtre (si oui enlever la) Avez vous bien enregistrée (on sait jamais) En quel version de presta êtes vous Link to comment Share on other sites More sharing options...
doekia Posted January 22, 2018 Share Posted January 22, 2018 il y a a peut près 7000 domaines utilisé par l'attaque SPAM de ces dernier jours donc qq.com ne suffira pas 1 Link to comment Share on other sites More sharing options...
Thorfy Posted January 22, 2018 Share Posted January 22, 2018 Exact c'est pourquoi je lui est recommandé la solution du captcha Mais bon pour les novices en développement c'est plus complexe Link to comment Share on other sites More sharing options...
Jpc_des_dombes Posted January 22, 2018 Share Posted January 22, 2018 Bonjour Thorfy, Je tenais simplement à te remercier pour ton travail. En ce qui me concerne il m'a sauvé la mise sur le site de notre association. Si ça peut servir, voici ma liste de blacklistage : www.hubofa.com www.lehu201.com www.longhu90.com www.sega113.com www.zb557.com sj5666.com www.ZHOUJI6.COM www.sega117.com www.sega7.com huyabo.com www.new8882.com sega0 xieyiceshi www.zb778.com www.60124.net www.wns443.com Doctor Goodenough @qq.com http://www.qukbao.com www.qukbao.com 2147178197 http://sbfa111.com/ [email protected] http://www.sbfa111.com/ Bonne journée Link to comment Share on other sites More sharing options...
Thorfy Posted January 23, 2018 Share Posted January 23, 2018 super, merci du partage Link to comment Share on other sites More sharing options...
kestouf Posted January 24, 2018 Share Posted January 24, 2018 Bonjour a tous Je rencontre actuellement me même problème de SPAM de QQ.com Les liens pour le module proposer dans ce poste et qui semble résoudre le problème n'est plus téléchargable. Est il possible de le proposer? Merci Link to comment Share on other sites More sharing options...
Thorfy Posted January 24, 2018 Share Posted January 24, 2018 (edited) 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 Edited January 25, 2018 by Thorfy .zip + fix (see edit history) 1 Link to comment Share on other sites More sharing options...
doekia Posted January 25, 2018 Share Posted January 25, 2018 il me semble que lors de l'install, l'initialisation de la variable de configuration ANTISPAMCONTACT_LIST est erronée. 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; } } Tu serializes un contenu déjà sérialisé Link to comment Share on other sites More sharing options...
Thorfy Posted January 25, 2018 Share Posted January 25, 2018 Oui je l'ai vu ce matin au boulot, Je pense que PHP soit le laisser passer mais bon c'est pas très propre si jamais tu as des améliorations à y porter n'hésite pas Link to comment Share on other sites More sharing options...
Eolia Posted January 25, 2018 Share Posted January 25, 2018 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; } } Link to comment Share on other sites More sharing options...
Thorfy Posted January 25, 2018 Share Posted January 25, 2018 c'est corrigé, merci du coup de main Link to comment Share on other sites More sharing options...
fcunin Posted January 27, 2018 Share Posted January 27, 2018 Bonjour à tous, le site de ma mère est spammé par qq.com notamment avec près de 45000 messages !!!! Ma mère est en panique ! SVP comment faire pour 1/ les supprimer du back-office 2/ faire en sorte que cela n'arrive plus. Je tiens à signaler que je ne suis pas expert, mais si on m'explique je devrais y arriver !!! Merci beaucoup pour votre aide François site web de ma mère : deshistoiresabroder.com Link to comment Share on other sites More sharing options...
Eolia Posted January 27, 2018 Share Posted January 27, 2018 Cela fait maintenant une semaine que l'on répond à cette question. Installez un vrai captcha sur le formulaire de contact puis supprimez les messages indésirables du BO http://area51.enter-solutions.com/snippets/74 Link to comment Share on other sites More sharing options...
fcunin Posted January 27, 2018 Share Posted January 27, 2018 Merci beaucoup Eolia pour cette réponse mais encore une fois je ne suis pas développer ! Je suis débutant, je bidouille mais c'est tout. De ce que je comprends, je copie ce code et donc n'ai pas besoin d'acheter un module de captcha ? Si oui, pouvez-vous me dire à quel endroit je dois copier ce code dans mon BO ? Et dans un second temps, quand j'aurai donc un captcha installé, le BO pourra identifier les 40000 messages déjà reçus comme du spam et donc je pourrai les supprimer d'un coup ? Merci beaucoup pour vos réponses et merci vraiment de prendre le temps de m'aider. François Link to comment Share on other sites More sharing options...
olivierpc4you Posted January 27, 2018 Share Posted January 27, 2018 Bonjour, J'ai bien suivi le correctif de @doekia avec quelques difficultés : - Dans le correctif : il faut changer le index.php et le contact-form.tpl, et dans 2 autres sujets du forum, c'est indiqué index.php et header.tpl . Dans les deux cas, je n'ai pas réussi a faire fonctionner, je me suis rabattu sur le tuto : https://www.arnaud-merigeau.fr/add-recaptcha-to-prestashop/ Le Captcha à l'air fonctionnel depuis le formulaire de contact. et je ne recois plus une bardée de mail de sav Le Hic : Mon sav se remplit toujours de 5 messages par seconde, et seulement lorsque la boutique est activée. Y'a t il un cache pour ces messages ? si oui, comment le vider ? Cordialement et merci pour vos solutions précédentes. Link to comment Share on other sites More sharing options...
Thorfy Posted January 27, 2018 Share Posted January 27, 2018 Bon les gars va quand même falloir apprendre à lire avant de poster des messages ! Comme l'as dit eolia, ça fait une semaine que l'on répond à ce genre de message. En plus si tu remontes 8 post sur ce sujet tu as une solution clé en main Jveux pas être méchant mais on peut pas s'amuser pendant 1 mois redire les mêmes choses Je le répète une dernière fois .... La solution la plus viable et la plus propre est celle du captcha , En revanche si c'est trop complexe à mettre en place j'ai créer un module presta qui bloque par des filtrages que l'on configure soit même (via le menu config du module) Remonter quelque posté il est dispo 1 Link to comment Share on other sites More sharing options...
olivierpc4you Posted January 27, 2018 Share Posted January 27, 2018 Le module antispam est installé et la liste plus haut est renseignée. J'ai un captcha fonctionnel sur mon formulaire, comme dit dans mon message. et je ne reçois plus de mails, juste ma liste de SAV qui se remplit encore et encore et encore Link to comment Share on other sites More sharing options...
Eolia Posted January 27, 2018 Share Posted January 27, 2018 (edited) 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, 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à Edited January 27, 2018 by Eolia (see edit history) Link to comment Share on other sites More sharing options...
doekia Posted January 27, 2018 Share Posted January 27, 2018 (edited) j'ai choisi quand j'ai écrit le snippet de le mettre dans header.tpl pour le cas où le formulaire de message soit a un endroit inhabituel (thème custom) normalement ce formulaire est seulement dans la page contact. Donc que vous choisissiez de modifier header.tpl ou contact-form.tpl le résultat est dans 95% des cas le même. Il faut ensuite modifier le index.php à la racine du web (si vous oubliez, plus personne ne pourra envoyer de message) Edited January 27, 2018 by doekia (see edit history) Link to comment Share on other sites More sharing options...
Strat Posted January 29, 2018 Share Posted January 29, 2018 Bonjour, Nous hébergeons plusieurs sites sur un serveur dédié et l'un d'entre eux a rencontré le même problème. Nous avons pu bloquer les spams grâce à votre solution et nous en vous remercions. Cependant, le flux de spams a créé un fort ralentissement de l'ensemble du serveur pendant la durée de l'attaque. Ce ralentissement apparaissait uniquement lorsque le captcha était utilisé pour bloquer les envois. Dans les logs nous avons repéré le message suivant qui se répétait de nombreuses fois et qui semblait correspondre aux requêtes des robots spammeurs : mod_fcgid: can't apply process slot for /var/www/cgi-bin/cgi_wrapper/cgi_wrapper, referer: http://www.le-site-attaque.fr/nous-contacter Nous en avons discuté avec l'infogérant de notre serveur qui n'a pas trouvé de solution pérenne pour le moment. Êtes vous au courant de ce type de comportement, si oui y a-t-il quelque chose à faire au niveau de prestashop? En vous remerciant. Link to comment Share on other sites More sharing options...
doekia Posted January 29, 2018 Share Posted January 29, 2018 Votre max_execution_time semble être inférieur au 30s de réglage par défaut. Demandez à l'hébergeur quell est la limite et ajustez dans le code le sleep(25) à une valeur inférieure à celle de l'hébergement. Vous pouvez également supprimer entièrement le sleep, dont est de ralentir le robot en face en le faisant attendre Link to comment Share on other sites More sharing options...
Strat Posted January 30, 2018 Share Posted January 30, 2018 Merci pour votre réponse rapide. Le max_execution_time est bien supérieur à 30s, donc j'imagine que ça ne vient pas de là. L'attaque de spam étant terminée je ne peux pas vérifier les réglages en situation réelle. Dans le doute, je vais réduire le sleep et surveiller le site de près. Merci encore ! Link to comment Share on other sites More sharing options...
mikanat Posted February 6, 2018 Share Posted February 6, 2018 Bonjour à tous, Je rencontre un problème similaire à ceux évoqués et c'est pourquoi je me permets de relancer ce topic fort intéressant pour d'autres visiteurs à l'avenir. En apportant des modifications au header.tpl et contact-form.tpl, celles-ci font crasher le site aux pages d'accueil du site et au formulaire de contact. J'ai pu incrémenter le ReCAPTCHA Google mais à la lecture de la discussion, j'ai bien compris que son apparition ne suffit pas. Encore faut-il le configurer et c'est donc ici que mes faibles connaissances en codage s'arrêtent. Par ailleurs, un grand merci à @Thorfy pour ton module qui bloquent les SPAMs. Je ne peux cependant recevoir d'autres message. Une erreur accompagnée de la formule "GET OUT BOT!!" apparaît même avec une adresse email valide. Avez-vous des propositions/solutions depuis les derniers échanges ? Merci beaucoup d'avance ! J'y suis depuis 48h et ce n'est pas évident .. Link to comment Share on other sites More sharing options...
doekia Posted February 6, 2018 Share Posted February 6, 2018 Soit tu utilises le module de @Thorfy soit le snippet. Si tu utilise le snippet, soit tu l'implemente dans le header.tpl, soit dans le contact-form.pl, il faut aussi la partie stipulée (entre les {* *}) dans ton index.php de la racine. Et bien sûr remplacer là clé publique dans le tpl et la clé privée dans l'index.php GET OUT BOT me laisse penser que tu as utilisé le module, dans ce cas, revérifie simplement tes clés et la procédure liée au module. Si le recaptcha apparait c'est que ta clé publique est conforme, il ne reste que la clé privé à vérifier 1 Link to comment Share on other sites More sharing options...
mikanat Posted February 6, 2018 Share Posted February 6, 2018 Merci @doekia pour la réponse. Je vais essayer. Link to comment Share on other sites More sharing options...
mikanat Posted February 6, 2018 Share Posted February 6, 2018 Sans réel succès malheureusement ... Un petite modification des fichiers ci-dessous entraîne un down du site : - index.php - header.tpl - contact-form.tpl Link to comment Share on other sites More sharing options...
Eolia Posted February 6, 2018 Share Posted February 6, 2018 down, c'est à dire ? En mode debug quelle erreur apparait ? Que dit le error.log du serveur ? Link to comment Share on other sites More sharing options...
mikanat Posted February 6, 2018 Share Posted February 6, 2018 Quote [Tue Feb 06 14:42:11.364525 2018] [:error] [pid 7164:tid 140427881592576] [client 160.124.155.29:60066] FastCGI: server "/home/clients/82b4f2b3306d530822df7119342e56e5/.config/apache/natech-sante.fr/.fpm/php5.external" stderr: PHP message: PHP Warning: Invalid argument supplied for foreach() in /home/clients/82b4f2b3306d530822df7119342e56e5/web/override/controllers/front/ContactController.php on line 15, referer: https://www.natech-sante.fr/contactez-nous [Tue Feb 06 14:40:02.316755 2018] [:error] [pid 13390:tid 140427839629056] [client 160.124.155.31:60597] FastCGI: server "/home/clients/82b4f2b3306d530822df7119342e56e5/.config/apache/natech-sante.fr/.fpm/php5.external" stderr: PHP message: PHP Warning: Invalid argument supplied for foreach() in /home/clients/82b4f2b3306d530822df7119342e56e5/web/override/controllers/front/ContactController.php on line 15, referer: https://www.natech-sante.fr/contactez-nous [Tue Feb 06 14:39:38.386128 2018] [:error] [pid 13390:tid 140427789272832] [client 160.124.155.29:59715] FastCGI: server "/home/clients/82b4f2b3306d530822df7119342e56e5/.config/apache/natech-sante.fr/.fpm/php5.external" stderr: PHP message: PHP Warning: Invalid argument supplied for foreach() in /home/clients/82b4f2b3306d530822df7119342e56e5/web/override/controllers/front/ContactController.php on line 15, referer: https://www.natech-sante.fr/contactez-nous [Tue Feb 06 14:37:19.224277 2018] [:error] [pid 13390:tid 140427730523904] [client 160.124.155.31:60255] FastCGI: server "/home/clients/82b4f2b3306d530822df7119342e56e5/.config/apache/natech-sante.fr/.fpm/php5.external" stderr: PHP message: PHP Warning: Invalid argument supplied for foreach() in /home/clients/82b4f2b3306d530822df7119342e56e5/web/override/controllers/front/ContactController.php on line 15, referer: https://www.natech-sante.fr/contactez-nous [Tue Feb 06 14:37:04.877925 2018] [:error] [pid 13390:tid 140427839629056] [client 160.124.155.29:59370] FastCGI: server "/home/clients/82b4f2b3306d530822df7119342e56e5/.config/apache/natech-sante.fr/.fpm/php5.external" stderr: PHP message: PHP Warning: Invalid argument supplied for foreach() in /home/clients/82b4f2b3306d530822df7119342e56e5/web/override/controllers/front/ContactController.php on line 15, referer: https://www.natech-sante.fr/contactez-nous [Tue Feb 06 14:34:45.136461 2018] [:error] [pid 13266:tid 140427722131200] [client 160.124.155.31:59902] FastCGI: server "/home/clients/82b4f2b3306d530822df7119342e56e5/.config/apache/natech-sante.fr/.fpm/php5.external" stderr: PHP message: PHP Warning: Invalid argument supplied for foreach() in /home/clients/82b4f2b3306d530822df7119342e56e5/web/override/controllers/front/ContactController.php on line 15, referer: https://www.natech-sante.fr/contactez-nous Voici les logs erreurs. J'imagine qu'il s'agit des tentatives de SPAMS toutes les 1 - 2 minutes. J'ai une erreur 500 affichée (classique). J'active le debug mode et reviens rapidement. Link to comment Share on other sites More sharing options...
Thorfy Posted February 6, 2018 Share Posted February 6, 2018 si tu as le message message get out bot même lorsque toi tu ecris un message c'est que tu as mal configuré les filtres. (il sont actif sur le contenu du message ET les mails) Donc verifie bien que tu n'as pas des mots ou domaine trop générale dans tes filtres. Link to comment Share on other sites More sharing options...
Eolia Posted February 6, 2018 Share Posted February 6, 2018 Donc l'erreur est là: /web/override/controllers/front/ContactController.php on line 15 Ce qui signifie que la variable utilisée pour la boucle foreach n'est pas un tableau. Quelle est cette variable et comment est-elle définie ? Link to comment Share on other sites More sharing options...
mikanat Posted February 6, 2018 Share Posted February 6, 2018 Bonjour Thorfy, J'ai installé ton module 1.2 et il fonctionne très bien ainsi. Je n'ai donc pas touché à la configuration originelle que tu as programmé. Link to comment Share on other sites More sharing options...
mikanat Posted February 6, 2018 Share Posted February 6, 2018 Fatal error: Uncaught --> Smarty Compiler: Syntax error in template "/home/clients/82b4f2b3306d530822df7119342e56e5/web/themes/transformer/header.tpl" on line 47 "<meta name="robots" content="{if isset($nobots)}no{/if}index,{if isset($nofollow) && $nofollow}no{/if}follow" />" - Unexpected ";", expected one of: "}" <-- thrown in /home/clients/82b4f2b3306d530822df7119342e56e5/web/tools/smarty/sysplugins/smarty_internal_templatecompilerbase.php on line 47 Voici le code erreur affiché en appliquant le snippet Link to comment Share on other sites More sharing options...
doekia Posted February 6, 2018 Share Posted February 6, 2018 Le snippet ne manipulant pas la section meta robots, l'erreur n'est pas dedans Par contre quand tu as édité ton fichier tpl, tu l'as fait avec quel outil? rassures-moi pas word ! Link to comment Share on other sites More sharing options...
mikanat Posted February 6, 2018 Share Posted February 6, 2018 En laissant les fichiers non modifiées, et en activant le module de Thorfy, voici les erreurs relevées du demo mode lorsque j'essaye de m'envoyer un message : Quote Warning: Invalid argument supplied for foreach() in /home/clients/82b4f2b3306d530822df7119342e56e5/web/override/controllers/front/ContactController.php on line 15Notice: Undefined variable: blackListTriggered in /home/clients/82b4f2b3306d530822df7119342e56e5/web/override/controllers/front/ContactController.php on line 37 Line 15 * DISCLAIMER Line 36 : public function postProcess() Line 37 : { 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 (!$message) $this->errors[] = Tools::displayError('The message cannot be blank.'); elseif (!Validate::isCleanHtml($message)) $this->errors[] = Tools::displayError('Invalid message'); elseif (!($id_contact = (int)Tools::getValue('id_contact')) || !(Validate::isLoadedObject($contact = new Contact($id_contact, $this->context->language->id)))) $this->errors[] = Tools::displayError('Please select a subject from the list provided. '); elseif (!empty($file_attachment['name']) && $file_attachment['error'] != 0) $this->errors[] = Tools::displayError('An error occurred during the file-upload process.'); elseif (!empty($file_attachment['name']) && !in_array(Tools::strtolower(substr($file_attachment['name'], -4)), $extension) && !in_array(Tools::strtolower(substr($file_attachment['name'], -5)), $extension)) $this->errors[] = Tools::displayError('Bad file extension'); else { $customer = $this->context->customer; if (!$customer->id) $customer->getByEmail($from); $id_order = (int)$this->getOrder(); if (!(( ($id_customer_thread = (int)Tools::getValue('id_customer_thread')) && (int)Db::getInstance()->getValue(' SELECT cm.id_customer_thread FROM '._DB_PREFIX_.'customer_thread cm WHERE cm.id_customer_thread = '.(int)$id_customer_thread.' AND cm.id_shop = '.(int)$this->context->shop->id.' AND token = \''.pSQL(Tools::getValue('token')).'\'') ) || ( $id_customer_thread = CustomerThread::getIdCustomerThreadByEmailAndIdOrder($from, $id_order) ))) { $fields = Db::getInstance()->executeS(' SELECT cm.id_customer_thread, cm.id_contact, cm.id_customer, cm.id_order, cm.id_product, cm.email FROM '._DB_PREFIX_.'customer_thread cm WHERE email = \''.pSQL($from).'\' AND cm.id_shop = '.(int)$this->context->shop->id.' AND ('. ($customer->id ? 'id_customer = '.(int)$customer->id.' OR ' : '').' id_order = '.(int)$id_order.')'); $score = 0; foreach ($fields as $key => $row) { $tmp = 0; if ((int)$row['id_customer'] && $row['id_customer'] != $customer->id && $row['email'] != $from) continue; if ($row['id_order'] != 0 && $id_order != $row['id_order']) continue; if ($row['email'] == $from) $tmp += 4; if ($row['id_contact'] == $id_contact) $tmp++; if (Tools::getValue('id_product') != 0 && $row['id_product'] == Tools::getValue('id_product')) $tmp += 2; if ($tmp >= 5 && $tmp >= $score) { $score = $tmp; $id_customer_thread = $row['id_customer_thread']; } } } $old_message = Db::getInstance()->getValue(' SELECT cm.message FROM '._DB_PREFIX_.'customer_message cm LEFT JOIN '._DB_PREFIX_.'customer_thread cc on (cm.id_customer_thread = cc.id_customer_thread) WHERE cc.id_customer_thread = '.(int)$id_customer_thread.' AND cc.id_shop = '.(int)$this->context->shop->id.' ORDER BY cm.date_add DESC'); if ($old_message == $message) { $this->context->smarty->assign('alreadySent', 1); $contact->email = ''; $contact->customer_service = 0; } if ($contact->customer_service) { if ((int)$id_customer_thread) { $ct = new CustomerThread($id_customer_thread); $ct->status = 'open'; $ct->id_lang = (int)$this->context->language->id; $ct->id_contact = (int)$id_contact; $ct->id_order = (int)$id_order; if ($id_product = (int)Tools::getValue('id_product')) $ct->id_product = $id_product; $ct->update(); } else { $ct = new CustomerThread(); if (isset($customer->id)) $ct->id_customer = (int)$customer->id; $ct->id_shop = (int)$this->context->shop->id; $ct->id_order = (int)$id_order; if ($id_product = (int)Tools::getValue('id_product')) $ct->id_product = $id_product; $ct->id_contact = (int)$id_contact; $ct->id_lang = (int)$this->context->language->id; $ct->email = $from; $ct->status = 'open'; $ct->token = Tools::passwdGen(12); $ct->add(); } if ($ct->id) { $cm = new CustomerMessage(); $cm->id_customer_thread = $ct->id; $cm->message = $message; if (isset($file_attachment['rename']) && !empty($file_attachment['rename']) && rename($file_attachment['tmp_name'], _PS_UPLOAD_DIR_.basename($file_attachment['rename']))) { $cm->file_name = $file_attachment['rename']; @chmod(_PS_UPLOAD_DIR_.basename($file_attachment['rename']), 0664); } $cm->ip_address = (int)ip2long(Tools::getRemoteAddr()); $cm->user_agent = $_SERVER['HTTP_USER_AGENT']; if (!$cm->add()) $this->errors[] = Tools::displayError('An error occurred while sending the message.'); } else $this->errors[] = Tools::displayError('An error occurred while sending the message.'); } if (!count($this->errors)) { $var_list = array( '{order_name}' => '-', '{attached_file}' => '-', '{message}' => Tools::nl2br(stripslashes($message)), '{email}' => $from, '{product_name}' => '', ); if (isset($file_attachment['name'])) $var_list['{attached_file}'] = $file_attachment['name']; $id_product = (int)Tools::getValue('id_product'); if (isset($ct) && Validate::isLoadedObject($ct) && $ct->id_order) { $order = new Order((int)$ct->id_order); $var_list['{order_name}'] = $order->getUniqReference(); $var_list['{id_order}'] = (int)$order->id; } if ($id_product) { $product = new Product((int)$id_product); if (Validate::isLoadedObject($product) && isset($product->name[Context::getContext()->language->id])) $var_list['{product_name}'] = $product->name[Context::getContext()->language->id]; } if (empty($contact->email)) Mail::Send($this->context->language->id, 'contact_form', ((isset($ct) && Validate::isLoadedObject($ct)) ? sprintf(Mail::l('Your message has been correctly sent #ct%1$s #tc%2$s'), $ct->id, $ct->token) : Mail::l('Your message has been correctly sent')), $var_list, $from, null, null, null, $file_attachment); else { if (!Mail::Send($this->context->language->id, 'contact', Mail::l('Message from contact form').' [no_sync]', $var_list, $contact->email, $contact->name, $from, ($customer->id ? $customer->firstname.' '.$customer->lastname : ''), $file_attachment) || !Mail::Send($this->context->language->id, 'contact_form', ((isset($ct) && Validate::isLoadedObject($ct)) ? sprintf(Mail::l('Your message has been correctly sent #ct%1$s #tc%2$s'), $ct->id, $ct->token) : Mail::l('Your message has been correctly sent')), $var_list, $from, null, $contact->email, $contact->name, $file_attachment)) $this->errors[] = Tools::displayError('An error occurred while sending the message.'); } } if (count($this->errors) > 1) array_unique($this->errors); elseif (!count($this->errors)) $this->context->smarty->assign('confirmation', 1); } } } Link to comment Share on other sites More sharing options...
mikanat Posted February 6, 2018 Share Posted February 6, 2018 Je n'ai pas DreamWeaver à porter de mon poste de travail. J'utilise pour dépanner le logiciel BlueGriffon Link to comment Share on other sites More sharing options...
Eolia Posted February 6, 2018 Share Posted February 6, 2018 c'est l'override ça ??? On dirait plutot l'original Link to comment Share on other sites More sharing options...
doekia Posted February 6, 2018 Share Posted February 6, 2018 Oui l'original puisque l'erreur est dans l'override à la ligne 13 et 15 et que ici nous comme dans le commentaire à la ligne 15 Link to comment Share on other sites More sharing options...
mikanat Posted February 6, 2018 Share Posted February 6, 2018 (edited) Quelles modifications faut-il apporter au fichier ContactController.php ? EDIT : Autant pour moi, je n'étais pas sur le bon fichier. J'étais dans controllers/front/ par méchanisme. Voici les lignes foreach ($blackListsMessage as $string) { $blackListTriggered = stripos($message, $string); if ($blackListTriggered !== false) { break; } $blackListTriggered = stripos(Tools::getValue('from'), $string); if ($blackListTriggered !== false) { break; } } if (!($from = trim(Tools::getValue('from'))) || !Validate::isEmail($from)) { $this->errors[] = Tools::displayError('Invalid email address.'); } elseif (!$message) { $this->errors[] = Tools::displayError('The message cannot be blank.'); } elseif (!Validate::isCleanHtml($message)) { $this->errors[] = Tools::displayError('Invalid message'); } elseif (!($id_contact = (int) Tools::getValue('id_contact')) || !(Validate::isLoadedObject($contact = new Contact($id_contact, $this->context->language->id)))) { $this->errors[] = Tools::displayError('Please select a subject from the list provided. '); } elseif (!empty($file_attachment['name']) && $file_attachment['error'] != 0) { $this->errors[] = Tools::displayError('An error occurred during the file-upload process.'); } elseif (!empty($file_attachment['name']) && !in_array(Tools::strtolower(substr($file_attachment['name'], -4)), $extension) && !in_array(Tools::strtolower(substr($file_attachment['name'], -5)), $extension)) { $this->errors[] = Tools::displayError('Bad file extension'); } elseif ($blackListTriggered !== false){ $this->errors[] = Tools::displayError('GET OUT BOT!!'); Edited February 6, 2018 by mikaelnatech ERREUR FICHIER (see edit history) Link to comment Share on other sites More sharing options...
Eolia Posted February 6, 2018 Share Posted February 6, 2018 ok donc $blackListsMessage n'est pas un tableau, mais comme on n'a pas le début du fichier on ne sait pas à quoi il correspond... Link to comment Share on other sites More sharing options...
mikanat Posted February 6, 2018 Share Posted February 6, 2018 Voici le début du fichier <?php class ContactController extends ContactControllerCore { /* * module: antispamcontact * date: 2018-02-06 15:12:03 * version: 1.2 */ 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'); $blackListsMessage = unserialize(Configuration::getGlobalValue('ANTISPAMCONTACT_LIST')); Link to comment Share on other sites More sharing options...
Eolia Posted February 6, 2018 Share Posted February 6, 2018 ca me rappelle quelque chose... Allez voir dans la base de données ps_configuration ce qu'il y a dans ANTISPAMCONTACT_LIST Link to comment Share on other sites More sharing options...
doekia Posted February 6, 2018 Share Posted February 6, 2018 ah mais oui c'est la version où il y a une erreur à l'install avec le serialize déjà serialisé !!! Link to comment Share on other sites More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now