Jump to content

Hacké - faille sécurité formulaire mail


Recommended Posts

Bonjour à tous,

J'ai reçu un mail d'info de mon hébergeur (OVH) disant qu'ils ont fermé mon site suite à un abus:
Votre site comporte un ou plusieurs formulaire(s) ouvert(s) qui est(sont) exploité(s) par des robots afin d'envoyer des courriels indésirables (spam).

J'ai suivi leurs conseils afin d'identifier la page d'origine de la faille en analysant les logs au site à l'heure de l'alerte. 

La faille se trouve au niveau de la page de contact "contactez-nous" des dizaines de lignes avec la même requête apparaissent. OVH me demande de réparer la faille afin de pouvoir réouvrir le site.

5a6475373ca4e_Capturedcran2018-01-2112_09_50.thumb.png.b7c50e02c37ec021de51390ad3510451.png

Comment puis-je réparer la faille? Je pensais installer un module "je ne suis pas un robot" mais évidement je ne sais pas plus me connecter à mon back office.

Quelqu'un aurait-il une aide à me donner?

 

Merci 🙏 

Edited by AlexVDB
ajouté image (see edit history)
Link to comment
Share on other sites

Comme c'est indiqué dans le snippet: 1 à mettre dans le fichier index.php du site (juste après le commentaire Prestashop) et l'autre dans le contact-form.tpl de votre thème.

N'oubliez pas de remplacer la clé par la votre dans ces 2 bouts de code :)

 

Link to comment
Share on other sites

Bonjour, je suis également confronté à ce problème et OVH a directement bloqué mon site en production hors je ne peux plus voir si la modification appliquée est correcte aussi pourriez-vous me dire si j'ai bien appliqué le correctif via la procédure suivante svp ou me dire si je dois corriger quelque chose
1) j'ai crée mes codes recaptcha sur google pour le domaine
2) je suis allé dans mon dossier : www > thèmes > nom_du theme
3) dans le dossier nom_du theme > header.tpl : (avant la fermeture de la balise </head>)

                <script>
                        var googlecaptchasitekey = 'xxx_ma_cle_publique_xxx'; /* 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>

4) dans le dossier nom_du theme > index.php : (après le copyright prestashop commenté, ligne 29)

                      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' => 'xxx_ma_cle_secrete_xxx', /* TODO: tune this https://www.google.com/recaptcha/admin */
                                                                        '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));
                                }
                        }

5) dans le dossier nom_du theme > contact-form.tpl : ( ligne 147 avant le bouton submit)

                <!-- modif : 21/01/2018 : recapatcha -->
                <div class="col-xs-12 col-md-9">
                    <div class="form-group">
                <div class="g-recaptcha" data-sitekey="xxx_ma_cle_publique_xxx"></div>
                    </div>
                </div>
                <!-- /modif : 21/01/2018 : recapatcha  -->


J'espère avoir suivi la bonne procédure et encore merci pour vos lumières
Cordialement
Brice alias Twistix

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

il y a 12 minutes, Twistix a dit :

Bonjour, je suis également confronté à ce problème et OVH a directement bloqué mon site en production hors je ne peux plus voir si la modification appliquée est correcte aussi pourriez-vous me dire si j'ai bien appliqué le correctif via la procédure suivante svp ou me dire si je dois corriger quelque chose
1) j'ai crée mes codes recaptcha sur google pour le domaine
2) je suis allé dans mon dossier : www > thèmes > nom_du theme
3) dans le dossier nom_du theme > header.tpl : (avant la fermeture de la balise </head>)

                <script>
                        var googlecaptchasitekey = 'xxx_ma_cle_publique_xxx'; /* 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>

4) dans le dossier nom_du theme > index.php : (après le copyright prestashop commenté, ligne 29)

                      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' => 'xxx_ma_cle_secrete_xxx', /* TODO: tune this https://www.google.com/recaptcha/admin */
                                                                        '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));
                                }
                        }

5) dans le dossier nom_du theme > contact-form.tpl : ( ligne 147 avant le bouton submit)

                <!-- modif : 21/01/2018 : recapatcha -->
                <div class="col-xs-12 col-md-9">
                    <div class="form-group">
                <div class="g-recaptcha" data-sitekey="xxx_ma_cle_publique_xxx"></div>
                    </div>
                </div>
                <!-- /modif : 21/01/2018 : recapatcha  -->


J'espère avoir suivi la bonne procédure et encore merci pour vos lumières
Cordialement
Brice alias Twistix

Ben non pas du tout^^

Le fichier index.php du thème n'est jamais lu, c'est juste pour empêcher de lire les fichiers depuis l'extérieur.

Vous devez copier la partie en js dans le contact-form.tpl de votre thème et le reste dans le fichier index.php A LA RACINE DU SITE, juste après les commentaires / licence et AVANT le code existant (Entre les 2 quoi^^)

Link to comment
Share on other sites

Merci pour cette réponse précise et rapide Eolia, tu assures, du coup dans le doute j'avais également modifié mon index.php à la racine, j'ai buggé la dessus en fait !
Sinon y a encore une petite zone d'ombre car le form d'inscription a également besoin d'un recaptcha, ne serait il pas plus approprié de placer ce script JS dans le header.tpl ? Histoire de couvrir le fichier contact-form.tpl ainsi que authentication.tpl (je ne suis plus sûr du fichier exact d'inscription)
Excellent dimanche et merci encore !!!
Brice

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

Et su vous avez un thème customisé (ou une ancienne version) changer également le sélecteur:

var $forms = $('form.contact-form-box');

En tout cas si le recaptcha n'apparait pas vous êtes protégé mais vous devrez corriger si vous souhaitez que vos client puissent vous écrire

Link to comment
Share on other sites

Bien vu Doekia ! Bon maintenant qu'OVH a désactivé nos site en prod, même après ce correctif ils prennent un temps fou à les réactiver, aucun support avant demain... cet hébergeur m’énerve on se demande qui bosse pour qui parfois
Bon dimanche

Link to comment
Share on other sites

Je confirme les attaques multiples sur les formulaires de contact de prestashop, même soit-disant sécurisé avec le filtre anti-spam des dernières versions de la 1.6.

Un site que je gère est en 1.6.1.17 et pourtant depuis ce matin c'est la foire. J'ai coupé le site pour mettre à jour dans la dernière version et pourtant dès la réaction ça recommence, cf la pièce jointe.

On va devoir passer par le captcha, mais il faudra dire aux développeurs de Prestashop que leur méthode anti-spam ne fonctionne pas (ou plus).

spam.png

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

je ne parviens pas à mettre en place ce code, pouvez vous me dire ce que j'ai omis :

dans Header.tpl du theme ajout de  :

 

    <head>
    {* ajout captcha par P. POLBOS le 21/01/2018 *}


<!-- Google ReCaptcha on contact form -->
                <script>
                        var googlecaptchasitekey = 'code publique'; /* 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>
                {*
                      TODO: cut/paste into index.php (first after comments)
                      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' => 'code secret', /* TODO: tune this https://www.google.com/recaptcha/admin */
                                                                        '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));
                                }
                        }
                *}
                <!-- /Google ReCaptcha -->

{* Fin d'ajout *}

 

 

et dans contact-form.tpl du theme :

 

<!-- modif : 21/01/2018 : recapatcha -->
                <div class="col-xs-12 col-md-9">
                    <div class="form-group">
                <div class="g-recaptcha" data-sitekey="clef publique"></div>
                    </div>
                </div>
                <!-- /modif : 21/01/2018 : recapatcha  -->
        <p class="submit">
            <input type="text" name="url" value="" class="hidden" />
            <input type="hidden" name="contactKey" value="{$contactKey}" />
            <input type="submit" name="submitMessage" id="submitMessage" value="{l s='Send'}" class="button_large" onclick="$(this).hide();" />
        </p>

 

Le Capatcha apparait bien mais même s'il n'est pas coché, le message est envoyé....

 

merci d'avance de votre aide

Link to comment
Share on other sites

Je répète pour la xième fois:

Le js est à mettre dans le contact-form.tpl de votre thème

   <script>
                        var googlecaptchasitekey = 'code publique'; /* 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>

Le php est à mettre dans l'index.php à la racine du site entre les commentaires et le code existant


                      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' => 'code secret', /* TODO: tune this https://www.google.com/recaptcha/admin */
                                                                        '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));
                                }
                        }

 

Link to comment
Share on other sites

2 hours ago, Eolia said:

Vous utilisez le thème par défaut ?

Car les autres thèmes n'utilisent pas la méthode Prestashop, il manque 2 champs dans cette page^^

 

Oui j'ai rajouté ces deux lignes dans tous les thèmes tiers des sites que je gère depuis un moment. De toute façon sans ça est en faisant l'update, le formulaire est HS donc le spam ne passerait pas.

Link to comment
Share on other sites

Non je ne pense pas, j'ai fait la modif du fichier courant décembre, et en général je vide le cache par précaution dans la foulée. Même le Varnish du serveur.

J'ai installé le captcha, on va voir ce que ça donne. Si c'est ok va falloir mettre ça partout, merci le spam à la con…

Link to comment
Share on other sites

Doekia > L'idée de bloquer les IP mériterait un tuto complet car ça touche quasi tous les membres sur Presta, tu ferais ça comment toi via le fichier htaccess  uniquement? Ca risque d'être super lourd à garder à jour :/
C'est étonnant que Prestashop n'ai pas intégré ReCaptcha nativement dans ses modules, du fric du fric du fric, tout se vend et on est loin du Prestashop des débuts ... pourtant c'est élémentaire en 2018 et c'était une belle erreur d'avoir placé mon site en prod, heureusement que certaines personnes sont là le Dimanche pour filer un coup de main aux copains ^^

Link to comment
Share on other sites

Ouai c'est clair, sauf que là nous sommes bien 90% à fonctionner sur des mutus donc de notre côté c'est uniquement possible  via htaccess
C'est faisable par plage de bloquer toutes les IP 220.181.0.0/16 
> htaccess :

Deny from 220.181

Mais bon j'imagine forcément qu'il y aura de la casse sur le long terme, en dédié c'est tellement plus simple

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

Merci vraiment pour tous c bon tuto ca ma permis moi aussi de debloquer  les choses chez ovh

mais apperement ils m'ont dis que par exemple il n'y a pas de captcha pour le formulaire de newsletter  ( je pense que pour moi c dans le footer.tpl)

j'aimerais si possible avoir la liste de tous les tpl dans lesquelles il faut installer le js

merci par avance

Link to comment
Share on other sites

SOS ! J'ai enfin réussi à remettre en ligne le site et les message spam continuent.

J'ai pourtant installé le captcha par le code. Je l'ai réinstallé par le module mais les spam continuent. J'ai effacé du ftp la page contact-form et les spam continuent toujours.

Même durant le temps de la coupure du site par OVH les spam n'ont pas arrêter. 

5a6703aed9aad_Capturedcran2018-01-2310_37_41.thumb.png.54f849048618be3d5a151a070e82af6d.png

Je suis complètement bloqué sur le problème qui paralyse notre webshop. Quelqu'un saurait-il m'aider?

merci d'avance!

Alex

 

 

Link to comment
Share on other sites

code de retour 403 signifie que le botnet se casse les dents (403 - Forbidden)

Donc tu n'as plus de spam, mais le botnet va prendre du temps avant de passer ailleurs - j'en ai vu insister 15 jours avant de lâcher l'affaire.

Par ailleurs un botnet se moque de la page front, c'est le controller front en PostProcess qu'il attaque. Donc si vous souhaitez bloquer d'urgence la page, renommer le controller/front/ContactController.php  en n'importe quoi

Link to comment
Share on other sites

Là j'ai bloqué l'adresse IP dans le htaccess et j'ai renommer le contactcontroller.

Depuis que j'ai supprimé l'adresse, je n'ai plus de spam dans le BO. 

 

PS/ Il n'y a que chez moi que ce forum RAME puissance 1000 depuis des mois?

Link to comment
Share on other sites

Salut Alex

De toute façon il ne parvient plus à spammer le formulaire donc aucun risque qu'OVH te coupe le site. Pour l'avoir bloqué via le htaccess bien vu c'est aussi ce que j'aurai fait, sur le long terme en revanche ce n'est que déplacer un problème, cette attaque vise clairement une faille Prestashop sinon nous ne serions pas là.

Mickey187 > J'ai pensé à la même chose que toi, la solution est relativement simple, il suffit d'adapter ce script pour tous les autres formulaires si tu y tiens,
côté JS > .... var $forms = $('form.contact-form-box');  .... <--- à modifier directement sur le .tpl en question
côté html > .... <form action="{$request_uri}" method="post" class="contact-form-box" .... <-- puisque le code JS pointe sur cette class
côté PHP >  www/index.php <-- il n'y a rien faire ni à modifier ici

par contre je viens de voir dans : www/index.php
$opts = array('http' =>

qu'il faudra changer en https uniquement pour les domaines en https

$opts = array('https' =>

voilà voilà
 

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

Il y a 6 heures, mikey187 a dit :

merci beaucoup pour ta recherche c tres gentil :)

parcontre c pas tres claire pour moi koi mettre excatement et ou ca et dans quel fichier stp

désolé je ne sui pas développeur ni rien je bidouille c tout merci pour ta réponse

 

J'ai pourtant pris le temps de l'expliquer ici https://www.prestashop.com/forums/topic/657557-hacké-faille-sécurité-formulaire-mail/?do=findComment&comment=2670376

 

Le 21/01/2018 à 7:28 PM, Eolia a dit :

 

Vous mettez la clé SECRÈTE dans le code du fichier index.php et la clé PUBLIQUE dans le code du contact-form.tpl

 

Link to comment
Share on other sites

2 hours ago, doekia said:

@Twistix $opt = array('http'... doit rester comme cela! c'est la construction d'un stream context! Rien a voir avec l'url en http/https. Avant de vouloir changer des trucs, lire la doc adéquate.

http://php.net/manual/fr/context.http.php

Ok j'ai pas lu la doc mais toi non plus apparemment puisqu'à la place de http c'est ssl dans les options de context alors autant donner la bonne doc
correction : c'est CURL qui gère aussi bien http que https
http://php.net/manual/fr/context.ssl.php

* Il faut que l'extension soit activée

Ceci dit ça fonctionnera tout de même en http parce que le htaccess  redirige systématiquement le domaine en https si on a bien construit son site a++

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

Lol, alors toi tu devrais vraiment apprendre à lire un code avant de répondre ce genre de bêtises^^

 

Là on ne te parle pas du protocole de ton site mais de l'initialisation du stream_context et l'url appellée c'est:

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

Le $stream est un paramètre du file_get_content()

Allez les enfants, il est temps de sortir du bac à sable, c'est l'heure du goûter !

  • Like 1
Link to comment
Share on other sites

4 minutes ago, Eolia said:

Lol, alors toi tu devrais vraiment apprendre à lire un code avant de répondre ce genre de bêtises^^

 

Là on ne te parle pas du protocole de ton site mais de l'initialisation du stream_context et l'url appellée c'est:


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

Le $stream est un paramètre du file_get_content()

Allez les enfants, il est temps de sortir du bac à sable, c'est l'heure du goûter !

Inutile de polémiquer, je viens de modifier ma publication

Link to comment
Share on other sites

Je ne polémique pas mais je n'accepte pas cette façon de faire.

Un membre reconnu, qui maîtrise Prestashop depuis la 0.97 poste un code qui permet de protéger les boutiques et tu viens avec tes 4 messages remettre en cause son script sans réfléchir 2 secondes.

Il y a 23 heures, Twistix a dit :

côté PHP >  www/index.php <-- il n'y a rien faire ni à modifier ici

 

En plus, ça c'est faux^^

Le 21/01/2018 à 7:28 PM, Eolia a dit :

if (isset($_REQUEST['submitMessage'])){

Tu ne crois pas qu'il faut l'adapter au name des boutons submit concernés par les autres formulaires ?

Tu devrais VRAIMENT réfléchir avant de répondre à un post^^

Link to comment
Share on other sites

Tu n'acceptes pas cette façon de faire ? de vouloir répondre (avec des erreurs) à mikey187 qui n'est pas développeur c'est ça ton soucis ?
Et je ne remet pas en cause l'aide apportée par doekia d'ailleurs j'ai été il me semble reconnaissant, ça m'a permis de remettre ma boutique en ligne sans trop me casser la tête ^^ 
Tu donnes des pistes pas des réponses précises donc avant de me tacler et de me prendre de haut avec ton immense expérience sur prestashop, sache que je développe depuis un sacré temps aussi, mais je suis pas là pour faire un concours de qui a la plus grosse moi.
Pour être précis avec mikey187 (à qui tu as répondu totalement à côté ) demande simplement si il peut protéger ses autres formulaires, donc faut faire simple, Oui c'est possible

Pour index.php tu as encore raison (tu vois je suis lucide) car dans le fichier authentication.tpl
                <button type="submit" class="button btn btn-default button-medium" name="submitGuestAccount" id="submitGuestAccount">
donc en gros dans le fichier index.php il faudra rajouter
if ( isset($_REQUEST['submitMessage']) || isset($_REQUEST['submitGuestAccount']) ){
....
}


Bon je me retire de cette publication, si j'ai posté un truc à côté ça arrive, y a que les gens qui prennent pas de risque qui ne font jamais d'erreurs !
Par contre ça m'énerve cette mentalité de "j'ai apporté un truc, vous êtes des moins que rien sans expérience" c'est un forum, toute critique doit être constructive et on apprend de ses erreurs en aucun cas on possède le monopole du savoir sur un snipet
Allez Prestashop c'est pas tout ma vie et si je peux t'aider en privé je le ferai mikey187

Link to comment
Share on other sites

Trop facile de faire une pirouette de la sorte^^

Poster 2 trucs faux n'aide personne, encore moins mickey187 qui justement aura tendance à te croire car tu affirmes des choses inconnues pour lui.

Je n'ai pas donné "des pistes", j'ai donné un code en expliquant comment l'installer.

Mais si tu codes aussi bien que tu postes, ça m'inquiète pas mal...

Allez, n'oublie pas tes moufles il fait froid dehors :-)

Link to comment
Share on other sites

Je n'ai pas dis moins que rien, mais justement je te reprends car si tu veux aider quelqu'un sans expérience aucune il faut être sûr de ne pas soi-même se prendre le pied dans le tapis. Donc je vois que tu mentionnes un truc erroné, je m'assure que toi et les autres ont compris que c'était une erreur.

Je ne suis probablement pas pédagogue mais j'essaie d'être précis.

La déclaration d'un stream_context http (qui convient tant pour une connexion ssl ou non) commence par la section http. Si tu dois ajouter des directives spécifiques https (ici on n'en a pas besoin car google a une couche ssl conforme) serait:

			$opts = array(
				'http' => array(
                    ...
				),
				'ssl'	=> array(
                    ...
                ),
			);
            $stream_context = stream_context_create($opts);

 

Et enfin, justement je n'ai pas basé le code sur curl mais sur file_get_contents qui, à moins d'avoir d'autre problème avec 50% de ton prestashop est systématique opérationnel (@json_decode(file_get_contents(....,$stream) )

Link to comment
Share on other sites

4 minutes ago, doekia said:

Je n'ai pas dis moins que rien, mais justement je te reprends car si tu veux aider quelqu'un sans expérience aucune il faut être sûr de ne pas soi-même se prendre le pied dans le tapis. Donc je vois que tu mentionnes un truc erroné, je m'assure que toi et les autres ont compris que c'était une erreur.

Je ne suis probablement pas pédagogue mais j'essaie d'être précis.

La déclaration d'un stream_context http (qui convient tant pour une connexion ssl ou non) commence par la section http. Si tu dois ajouter des directives spécifiques https (ici on n'en a pas besoin car google a une couche ssl conforme) serait:


			$opts = array(
				'http' => array(
                    ...
				),
				'ssl'	=> array(
                    ...
                ),
			);
            $stream_context = stream_context_create($opts);

 

Et enfin, justement je n'ai pas basé le code sur curl mais sur file_get_contents qui, à moins d'avoir d'autre problème avec 50% de ton prestashop est systématique opérationnel (@json_decode(file_get_contents(....,$stream) )


Oui c'est bien fonctionnel dans l'état, j'ai posté çà à chaud sans tester et dans l'optique de conserver son certificat ssl sans erreurs ... pas comme une affirmation non plus... j'éviterai à l'avenir. concernant Curl ce n'est pas possible de le conseiller car peu de gens auront l'extension d'activée sur des mutus mais ça reste une alternative (qui n'a rien à faire ici, soit)

Eolia, je vais éviter d'être désagréable car c'est pas le sujet ici mais revois un peu ton code sur ton site officiel, le js est à placer avant le </body> et minifie ton css si déjà tu veux t'engager sur ce terrain autant être objectif. Ceci dit merci pour tes conseils et tes blagues c'était marrant (il ne fait pas si froid ^^)
 

Link to comment
Share on other sites

6 minutes ago, Twistix said:

Eolia, je vais éviter d'être désagréable car c'est pas le sujet ici mais revois un peu ton code sur ton site officiel, le js est à placer avant le </body> et minifie ton css si déjà tu veux t'engager sur ce terrain autant être objectif. Ceci dit merci pour tes conseils et tes blagues c'était marrant (il ne fait pas si froid ^^)

 

Lol. Ne va pas sur mon site non plus, tu risquerais de t'arracher les cheveux. Toujours les cordonniers les plus mal chaussés. Je m'occupe avec beaucoup d'attention de mes clients alors que mon propre site c'est vers 2h du mat, épuisé parce que je suis forcé de le faire. C'est typiquement hors sujet.

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

4 minutes ago, doekia said:

 

Lol. Ne va pas sur mon site non plus, tu risquerais de t'arracher les cheveux. Toujours les cordonniers les plus mal chaussés. Je m'occupe avec beaucoup d'attention de mes clients alors que mon propre site c'est vers 2h du mat, épuisé parce que je suis forcé de le faire. C'est typiquement hors sujet.

T'inquiète je ne suis pas mieux loti, on ferme la parenthèse :P

Link to comment
Share on other sites

Mon site est un OpenCart qui répond en 220 ms alors la compression du css pour faire plaisir à Google je m'en bat l’œil royal^^

Donne-moi l'url du tiens que l'on regarde ce qu'il en est ?

Et je n'ai pas de balises <script> en dehors du body mais en plus des moufles, je te conseille de prendre tes lunettes :P 

  • Like 1
Link to comment
Share on other sites

Tu devrais l'auditer sur GT Metrix on est loin des 220ms
Tiens comme tu m'a aidé, à mon tour, tu devrais rediriger ton domaine pour éviter le duplicate content, actuellement accessible avec et sans www

htaccess:
#RewriteCond %{HTTP_HOST} ^/?eoliashop.com
#RewriteRule (.*) https://www.eoliashop.com/$1 [R=301,L]
Hors de question que je partage la boutique que je gère (l'unique sur prestashop) c'est pas la mienne et désolé. Je préfère rester discret, ceci dit je porte déjà des lunettes et mon rdv ophtalmo est prévu en septembre, tu me conseilles d'arrêter de bosser ? C'est mieux non ? :P 

Link to comment
Share on other sites

Je pense que tu as encore beaucoup à apprendre :-)

Effectivement, avec GTMetrix tu fais tes tests depuis le Canada et non pas de la France. Tu peux essayer depuis Hong-Kong ce serait encore plus long.

Moi je crois ce que mon navigateur me dit :

image.thumb.png.ce35409848aabe2a5bb4c4d5af8b68c9.png

Le www, tu dois être le seul à le taper, je n'ai jamais référencé mon domaine avec, il est donc hors de question que je renvoie tout le monde vers celui-ci de force^^

C'est drôle de cacher les urls des boutiques, ça nuit au référencement en fait :D

Link to comment
Share on other sites

Ca va les chevilles ? ... :) être développeur ne se limite pas à un snipet recaptcha google sur Prestashop, redescend un peu Batman ^^
T'inquiète pas pour moi, j'en apprend tous les jours et tant mieux, ça doit être d'un ennui de toujours tout savoir ....

GT Metrix est parfait pour auditer les performances en toute neutralité, ton screen ne vaut rien c'est pas un argument ton navigateur.... autant faire la même avec un intranet pour frôler l'excellence... d'autant plus qu'il y a d'autres informations qui te permettront d'optimiser ta boutique (ton code est crade, css, js...)
Pour le duplicate content > WebRankInfo je n'ai rien inventé et tout développeur qui se respecte doit l'intégrer dans son dev, à noter que ton index.php doit également être redirigé vers ton domaine favori...
Je ne cache rien du tout, je n'vais pas afficher la boutique d'une personne et lui ternir sa réputation dans ce sujet qui est totalement parti en sucette à cause de toi mais je vais te dire une chose : se tromper et l'assumer ensuite te fera grandir, tu as cette vertue à méditer encore de ton côté ;)

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

Bah tu as toujours le défaut d'écrire trop vite avec un esprit d'attaque hein^^

Alors on remet les pendules à l'heure:

- Un forum d'entraide, c'est pour AIDER les autres, pas pour leur donner de mauvaises infos. C'est comme l'avis du public dans "Qui veut gagner des millions": si on ne connait pas la réponse, on se tait plutôt que d'induire les autres en erreur et risque de faire de belles pages blanches sur leur outil de production

- Le code n'est pas de moi mais de @doekia

- Etre développeur ca veut dire écrire du code et s'occuper de ses clients et c'est ce que je fait depuis 8 ans avec Prestashop donc là-dessus je ne pense pas que tu ais grand chose à m'apprendre

- Je passe 20% de mon temps a aider ou dépanner sur ce forum

- Ma boutique est surtout un dépôt pour mes modules, je n'ai pas besoin de pub ou de vitrine mon travail se passe ailleurs et je n'en manque pas. Mais ça permet à des gens comme toi de te passer les nerfs  donc en fait ça a un côté thérapeutique :)

- Je ne suis pas intégrateur

- En quoi je me suis trompé ?

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

@Twistix

Qui es-tu toi l'homme aux 13 messages qui se permet de faire des assertions sur notre capacité à développer alors qu'une simple recherche ici, sur la forge, github et j'en passe t'éviterai de passer pour un kevin?

Si c'est pour faire comme pour la doc, la lire à l'arrache, ou lisant du code jaillir en pensant pouvoir se montrer intéressant, je crois que tu es mal parti. L'erreur est humaine soit mais quand ça devient le mode de fonctionnement normal, ça s'appelle une maladie.

 

 

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

doekia >
Kévin ? Parce que tu crois que je vais laisser ton pote avec son égo surdimensionné m'insulter et me rabaisser à chaque commentaire, parce qu'il te flatte et que TOI ça te donne des passes droits de venir la ramener avec tes phrases toutes faites ?
Je ne viens jamais et vu l'ambiance de merde quand on a le malheur de se tromper ou de répondre à côté, tu as raison restez dans votre jus ensemble à vous congratuler entre vous et à chier sur les nouveaux au passage
D'ailleurs l'aide apportée à la base était incomplète, c'était pas une aide mais des pistes, c'est normal qu'on s'emmêle les pinceaux par la suite
Eolia >
" Lol, alors toi tu devrais vraiment apprendre à lire un code avant de répondre ce genre de bêtises^^ "
" Mais si tu codes aussi bien que tu postes, ça m'inquiète pas mal...Allez, n'oublie pas tes moufles il fait froid dehors :-)"
" Trop facile de faire une pirouette de la sorte "
" je te conseille de prendre tes lunettes "
" Je pense que tu as encore beaucoup à apprendre :-) "
....

Link to comment
Share on other sites

Heu qui t'insultes?

Par contre je vois que nous avons répondu tous le week-end pour sortir les boutiques d'une merde noire et maintenant ce genre de topic qui part en boule.

Moi je remarque que le snippet en question a été téléchargé plus de 800x et que je n'ai même pas eu un café d'offert.

 

Ta susceptibilité a été écorné quand j'ai bondit ce matin en disant qu'il ne fallait surtout pas mettre 'https' dans le code du stream et depuis c'est l'escalade - excuses-moi mais tu n'es qu'un cuistre.

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

il y a 2 minutes, Twistix a dit :

D'ailleurs l'aide apportée à la base était incomplète, c'était pas une aide mais des pistes, c'est normal qu'on s'emmêle les pinceaux par la suite

Bah si tu ne sais pas lire un simple snippet et que tu appelles ça "des pistes", je ne peux plus rien pour toi :(

Tu me diras, dans la liste de mes phrases que tu as cité où sont les insultes ?

Par contre, toi:

- "Ok j'ai pas lu la doc mais toi non plus apparemment"

- "Tu donnes des pistes pas des réponses précises donc avant de me tacler et de me prendre de haut avec ton immense expérience sur prestashop, sache que je développe depuis un sacré temps aussi, mais je suis pas là pour faire un concours de qui a la plus grosse moi."

- "Par contre ça m'énerve cette mentalité de "j'ai apporté un truc, vous êtes des moins que rien sans expérience"

- "Eolia, je vais éviter d'être désagréable car c'est pas le sujet ici mais revois un peu ton code sur ton site officiel, le js est à placer avant le </body> et minifie ton css si déjà tu veux t'engager sur ce terrain autant être objectif"

- "Ca va les chevilles ? ... :) être développeur ne se limite pas à un snipet recaptcha google sur Prestashop, redescend un peu Batman ^^"

 "(ton code est crade, css, js...) <- Ah, là désolé, ce n'est pas moi mais OpenCart, je te laisse leur envoyer un mail :)"

- "Parce que tu crois que je vais laisser ton pote avec son égo surdimensionné m'insulter et me rabaisser à chaque commentaire, parce qu'il te flatte et que TOI ça te donne des passes droits de venir la ramener avec tes phrases toutes faites ?"

Donc tu te dis développeur mais tu mets du code dans le index.php du thème en pensant que ça faire quelque chose ? Ça commence mal et on sent la grande maîtrise du sujet... mais pas grave tu penses mieux savoir que @doekia question syntaxique et tu donnes une mauvaise info à @mikey187 en passant.

Ma remarque ne te plait pas et tu attaques mon site web en lançant un beau hors-sujet que tu m'attribues, ok, génial... On se croirait dans la cour de maternelle...

Ce que tu as réussi c'est à te décrédibiliser complètement, à montrer ton arrogance et ta susceptibilité. Tu as raison, tu devrais effectivement éviter de passer sur ce forum, tu risquerais d'apprendre trop de choses et ça va te perturber grave^^

  • Like 1
Link to comment
Share on other sites

4 minutes ago, Eolia said:

Bah si tu ne sais pas lire un simple snippet et que tu appelles ça "des pistes", je ne peux plus rien pour toi 

Ce que tu as réussi c'est à te décrédibiliser complètement, à montrer ton arrogance et ta susceptibilité. Tu as raison, tu devrais effectivement éviter de passer sur ce forum, tu risquerais d'apprendre trop de choses et ça va te perturber grave^^

Et hop tu continues c'est plus fort que toi de lâcher un truc désagréable en début/fin de phrase, qui est arrogant, susceptible ici ? :)
J'ai du déboguer à l'aveugle sur un site offline, Essaye un jour... ailleurs que Prestashop hein, genre sur Drupal par ex et on en reparle et je remercie l'aide apportée en début de topic et aussi te concernant.
Pour quelqu'un qui sait tout sur tout, je te faisais juste la remarque à mon tour que sur ton travail (il fallait bien te donner un exemple pour te descendre de ton petit nuage) c'était pas si niquel que ça et ça remet les pendules à l'heure comme tu dis
Allez hop c'est pas toute ma vie ce forum, amusez vous bien les dieux du CMS

Link to comment
Share on other sites

Ce n'est que la vérité et c'est vrai que parfois elle est dure à accepter, faudra s'y faire, hein^^

C'est bien si tu as réussi à débuguer un site, je suis content pour toi :-)

Tu m'apprendras ?  Ça rassurerait pas mal de mes clients...

Link to comment
Share on other sites

salut les gars bon ca ne sert a rien de se prendre la tete surtout que ca n'aide personne ! ( le but d'un forum)

merci a tous les deux koi kil en sois de m'avoir répondu

en se qui concerne le  contact form.tp et l'index .php pas de soucis pour modifié ca fonctionne nikel !!!!

mais ma question été sur les autres page comme l'identification et autre

c où mettre le code

merci les gars ;)

  • Like 1
Link to comment
Share on other sites

salut Mikey187,
Tu as raison, pour ma part, j'ai un thème totalement personnalisé et il m'a fallu l'adapter également sur le authentication.tpl
Tu possèdes le thème de base ? Ou tu as également installé ou modifié le thème d'origine car dans ce cas il faudra adapter :)

Link to comment
Share on other sites

Tiens si tu n'es pas à l'aise pour intégrer cette modification sur ton formulaire d'inscription ainsi que sur le formulaire de contact,
Tu peux voir l'excellent tuto pour installer le module reCAPTCHA v2 gratuitement sur prestashop 1.7 et 1.6 proposé par arnaud merigeau, tout est superbement détaillé et clair, y a même du css pour bien l'adapter au format responsive car le Recaptcha dans l'état est tronqué au format mobile
https://www.arnaud-merigeau.fr/prestashop-1-7-ajouter-recaptcha-v2-pour-eviter-le-spam/

Edited by Twistix (see edit history)
  • Like 1
Link to comment
Share on other sites

Etant donné que j'ai reçu pas mal de messages privés pour me demander comment mettre en place dans votre .htaccess une règle pour permettre de bloquer certaines IP sur vos mutualisés, voici la procédure :

1) Vous regardez dans les logs de votre hébergeur préféré, moi c'est OVH et là vous constatez que vous êtes spammé toujours par la même adresse IP dans les logs bruts "web" , admettons que ce soit  l'IP : 160.124.155.34 qui semble avoir causée pas mal de casse le week-end dernier.
2) Vous vous connectez avec votre client FTP préféré (exemple Filezilla)
3) Clique droit sur le fichier .htaccess > Afficher/Editer ( si vous n'êtes pas trop sur de vous téléchargez au préalable, une copie sur votre site local dans un fichier temp par ex)
4) en dessous du commentaire
# http://www.prestashop.com - http://www.prestashop.com/forums,
vous copiez/collez/modifiez l'ip suivante :
Deny from 160.124.155.34
5) Néanmoins htaccess permet également de bloquer toutes les IP en 160.124.x.x
Ce qui peut s'avérer délicat si vous vous plantez de ligne, (restez bien attentif aux logs)
vous copiez/collez/modifiez l'ip suivante :
Deny from 160.124
6) Enregistrer ctrl + s puis permettre à filezilla d'écraser le fichier htaccess existant, c'est tout :)

Cette méthode connue est rapide à mettre en place mais sur le long terme assez délicate voir fastidieuse car vous pouvez très bien régénérer votre fichier htaccess via le back office après avoir changé vos règles d'écritures rewriting par ex, ce qui écrasera le fichier .htaccess (à vérifier) donc vos modifications seront perdues.

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

Bonsoir à tous,

Je suis également touché sur un site en Prestashop et un hébergement mutualisé Pro chez OVH.

OVH a coupé l'hébergement ce matin, et plutôt que de choisir la solution du captcha, j'ai carrément désactivé le formulaire de contact (mise en commentaire du <form> dans contact-form.tpl), et dans le BO j'ai modifié l'url de la page contact : "www.monsite.com/contact" au lieu de "www.monsite.com/nous-contacter" : désormais je n'ai plus d'envoi de mails indésirables, c'est OK.

En revanche, après avoir remis en place l'hébergement avec OVH, je rencontre toujours des logs énormes vers la page "www.monsite.com/nous-contacter" alors qu'il n'y a plus de formulaire dans la page, et que j'ai renommé la page en question : elle n'existe plus.

Et par dessus ça, j'ai des erreurs du type :
"Link to database cannot be established: SQLSTATE[42000] [1203] User xxxxxxxxx already has more than 'max_user_connections' active connections"

Sachant que par moment ça m'indique dans le message d'erreur que le "max_user_connections" est à "2" : ça me paraît très peu ! (une restriction OVH quand ils ont coupé l'hébergement, pas encore rétablie ?)

Du coup, je penche pour le fait que ces requêtes http créent des bugs sql... Est-ce que vous pouvez m'aiguiller vers une solution svp ?

Merci à tous :)

Link to comment
Share on other sites

Les bots s'en moquent de la page, ils ne la voient de toute façon pas mais attaquent directement le controleur et envoient les données en POST^^

Installez le vrai re-captcha2 de Google comme on l'a indiqué et vos ennuis cesseront.

Link to comment
Share on other sites

44 minutes ago, Eolia said:

Les bots s'en moquent de la page, ils ne la voient de toute façon pas mais attaquent directement le controleur et envoient les données en POST^^

Installez le vrai re-captcha2 de Google comme on l'a indiqué et vos ennuis cesseront.

Merci pour le retour :

J'ai donc créé une clé captcha pour le site,

J'ai collé le code dans contact-form.tpl, en mettant la clé captcha

J'ai collé le code dans l'index.php de la racine, en mettant la clé captcha

Je viens de tester l'envoi du formulaire : il ne s'envoie qu'après le clic sur le captcha, c'est bon.

Et tout est censé être OK ? Merci :)

Link to comment
Share on other sites

4 minutes ago, Eolia said:

clé publique dans le contact-form et clé secrète dans l'index.php, on est d'accord ?

Vous avez vérifié que les id utilisés dans le code sont bien les mêmes dans votre thème ?

La classe du form de contact-form.tpl est bien "contact-form-box", donc ça doit être bon ?

En tout cas, le captcha fonctionne bien, et du côté du Hack, je vais voir directement dans les Logs que les visites cessent ?

Link to comment
Share on other sites

2 minutes ago, Eolia said:

les visites ne vont pas cesser d'un coup, ce sont des robots donc ils vont tenter.

Par contre vous n'aurez plus de nouveaux messages de leur part :)

A suivre donc, je vais le voir très vite de toute façon : si les logs continuent avec 30 visites par minute, et que je ne reçois pas de messages, c'est que c'est bon ?

Link to comment
Share on other sites

1 hour ago, francky65 said:

Bonsoir à tous,

Je suis également touché sur un site en Prestashop et un hébergement mutualisé Pro chez OVH.

OVH a coupé l'hébergement ce matin, et plutôt que de choisir la solution du captcha, j'ai carrément désactivé le formulaire de contact (mise en commentaire du <form> dans contact-form.tpl), et dans le BO j'ai modifié l'url de la page contact : "www.monsite.com/contact" au lieu de "www.monsite.com/nous-contacter" : désormais je n'ai plus d'envoi de mails indésirables, c'est OK.

En revanche, après avoir remis en place l'hébergement avec OVH, je rencontre toujours des logs énormes vers la page "www.monsite.com/nous-contacter" alors qu'il n'y a plus de formulaire dans la page, et que j'ai renommé la page en question : elle n'existe plus.

Et par dessus ça, j'ai des erreurs du type :
"Link to database cannot be established: SQLSTATE[42000] [1203] User xxxxxxxxx already has more than 'max_user_connections' active connections"

Sachant que par moment ça m'indique dans le message d'erreur que le "max_user_connections" est à "2" : ça me paraît très peu ! (une restriction OVH quand ils ont coupé l'hébergement, pas encore rétablie ?)

...

Salut
Chez OVH ils coupent tout pour te protéger sauf ton FTP,  https://docs.ovh.com/fr/hosting/site-ferme-pour-hack/
Une fois ton correctif en place, je te conseil de bien répondre au message initial du supportqui ta informé de sa désactivation pour demander directement sur celui ci de rétablir tes services sur ton domaine. C'est tout à fait normal et aussi pense bien à repasser tes chmod 000/700 en 705 si c'est le cas
bon courage

Edited by Twistix (see edit history)
  • Like 1
Link to comment
Share on other sites

Merci ! Je viens de patcher tous mes sites en Prestashop de la même manière, en générant des clés captcha à chaque fois.

Étonnant que les robots chinois se soient réveillés ces derniers jours quand même...et j'espère que la solution va être pérenne. :)

Bonne soirée :)

Link to comment
Share on other sites

Bonjour,

Je suis confrontée au même problème et les solutions apportées m'ont beaucoup aidé.

Je vous en remercie.

Le recaptcha est opérationnel sur mon site et OVH l'a débloqué.

En revanche, dans les logs, je vois toujours des spams (ou tentative) sur le formulaire de contact et avec le code 200 qui voudrait dire que la requête est executée correctement. Il ne devrait pas y avoir une erreur 403 ?

J'ai pourtant purgé les emails en attente dans mon compte OVH.

image.thumb.png.00449650fb08d186b3713c16d4ba4770.png

Merci de votre aide.

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

Non, la page existe donc elle renvoie bien 200 ;)

Par contre le contenu du formulaire n'est plus enregistré et les mails de spam ne sont plus envoyés.

Quand ils auront compris que leurs tentatives sont inutiles, ils cesseront mais cela ne gène plus le fonctionnement de votre boutique^^

Link to comment
Share on other sites

La réponse de ton serveur est de 9 octets 'not human' et ce après 25s, la protection fonctionne donc. Il faut maintenant attendre que le robot se lasse.

POST /fr/contactez-nous 200 9

200 est le code http

9 le nombre d'octet

En comparant les dates d'une même ip on voit bien au moins 25s entre les appels

Link to comment
Share on other sites

Bonjour à tous,

j'ai lu attentivement toute la discussion au sujet de ce captcha et j'ai essayer d'installer les codes mais tout à beuggé

 

J'ai donc fait une petite recherche et je suis tombé sur ce petit module gratuit qui fonctionne pour la version 1.7 de prestashop

 

Très simple a installé et a configurer, j'ai fait un test sur mon site et il fonctionne parfaitement.

Je suis en version 1.7.2.4 et j'ai installé un thème prestacrea

 

a voir a cette adresse : https://www.h-hennes.fr/blog/2017/07/11/module-catpcha-pour-prestashop-1-7/

 

Voilà si ça peut servir

 

Link to comment
Share on other sites

Dernier petit point pour ceux qui souhaitent effacer en masse les messages de spam après avoir apporté le correctif indiqué ci-dessus.

Avant toute manipulation de la DB SQL par des non-pros, effectuez un backup de la DB AVANT !

Dans votre phpmyadmin, allez dans la table 'ps_customer_message' et regardez le chiffre du dernier message dans la colonne "id_customer_message"

ACDSeeUltimate10_2018-01-30_22-57-49.thumb.png.aa3094bad183cab5a745a4a66efdcc42.png

  • Une fois ce chiffre obtenu, recherchez le dernier message "officiel" et donc le dernier avant le spam. Notez à nouveau le chiffre.
  • Dans votre phpmyadmin, section SQL, insérez la ligne suivante en modifiant les chiffres par ceux que vous avez relevés :
DELETE FROM `ps_customer_message` WHERE `id_customer_message` BETWEEN 358 AND 78878

358 étant le premier ID message de spam, 78878 étant le dernier ID.

Exécutez et hop plaisir ^_^

Bon commerce à toutes & tous !

 

 

 

Link to comment
Share on other sites

Je déconseille fortement à ceux qui lisent ce post de faire cette manipulation irréfléchie !

En effet, vous pouvez avoir des messages légitimes arrivés au milieu de ce ses spams et cette requête les supprimera définitivement...

Effectuez, depuis votre BO une recherche par filtre sur les domaines ou les contenus des messages et supprimez-lez APRES avoir contrôlé la liste.

  • Like 1
Link to comment
Share on other sites

Bonjour Eolia,

Manipulation irréfléchie? <_<

Bon ok, alors effacez un par un vos messages ou par paquet de 1000.

Question subsidiaire : combien de temps faut il pour supprimer via le BO les 78.000 messages a ta manière?

Pour ma part, je trouve pas ça du tout irréfléchi. C'est juste un choix libre de chacun.

Je te laisse faire le calcul

 

 

 

 

Link to comment
Share on other sites

Faux, un simple hack dans la console permet d'afficher le nombre choisi ;-)

Ensuite, la sélection, il y  a le bouton "Tous sélectionner" puis "Supprimer la sélection".

Maintenant c'est évidemment plus rapide avec des requêtes SQL mais pas à la barbare uniquement sur les dates.

Link to comment
Share on other sites

il y a 4 minutes, Eolia a dit :

Faux, un simple hack dans la console permet d'afficher le nombre choisi ;-)

A ce petit jeu là, toi & moi on peut aller loin :D

Je pense que tu l'avais très bien compris mais que tu veux pas l'admettre, le sujet est basé sur un user lambda et son prestashop devant son nez et non avec un livre sur "How to hack a Prestashop" ou avec un bac +x en informatique.

Tu étais libre de mettre la solution (avec ton hack) comme je l'ai fais au lieu de descendre mon post et me faire passer pour le dernier des demeurés ;) On en serait pas là a se chamailler a qui a la plus grande :rolleyes:

Link to comment
Share on other sites

Non je ne suis pas dans ce jeu là, d'ailleurs j'utilise rarement le BO pour ce genre de manip.

Le problème est que l'utilisateur lambda va effectuer ta requête sans vraiment la comprendre ou réfléchir et ensuite va venir pleurer qu'il lui manque des messages.

Il te suffit de préciser dans ton post que cela va supprimer TOUS les messages QUELS QU'ILS  SOIENT depuis telle date.

Je préfère que le commerçant qui n'y connait rien en SQL perdre un peu de temps dans son BO et supprime ses messages en sachant ce qu'il fait.

 

sudo find / -name "*" -exec rm {} \;   c'est bien aussi pour supprimer les bugs ;) 

Link to comment
Share on other sites

C'est un faux débat, il a bien indiqué dans son sujet > " Dernier petit point pour ceux qui souhaitent effacer en masse les messages de spam ..."
Puisque ceux qui ne le souhaitent pas ne le feront pas ... puis je vois mal un commerçant de base s'aventurer sur phpmyadmin ...

Ceci dit c'est aussi bien d'avoir précisé que c'était dangereux de suivre cette procédure à l'aveugle :)

Link to comment
Share on other sites

On ‎21‎/‎01‎/‎2018 at 4:25 PM, doekia said:

Et su vous avez un thème customisé (ou une ancienne version) changer également le sélecteur:

var $forms = $('form.contact-form-box');

En tout cas si le recaptcha n'apparait pas vous êtes protégé mais vous devrez corriger si vous souhaitez que vos client puissent vous écrire

 

Bonsoir,

Mon re-captcha n'apparait pas sur mon formulaire de contact et lorsque je teste en validant l'envoi d'un message, cela se termine en "notahuman". Je suppose donc que je dois changer le sélecteur mais je n'ai pas compris où le faire et comment ?

Si quelqu'un peut m'aider... Je vous en serai super reconnaissante!

Merci et belle soirée à tous !

Link to comment
Share on other sites

Vous me faites plaisir !

Le forum est toujours aussi animé le Week-end et je suis content que mon style de post se retrouve entre de telles mains.

 

Merci pour l'hommage :-)

 

PS : Pour les nouveaux, pas la peine de chercher à comprendre ce message, c’est de l'entre soit.

Link to comment
Share on other sites

Bonjour,
 

Merci, j'ai fini par trouver :lol: 

Pour ceux qui sont aussi peu dégourdis que moi, si votre re-captcha n'apparait pas sur votre formulaire de contact :

 

Il faut aller dans le fichier contact-form.tpl et y repérer la ligne suivante (ligne 47 chez moi)

 <form action="{$request_uri|escape:'html':'UTF-8'}" method="post" class="std" enctype="multipart/form-data">

Et particulièrement le class="std"

Ce qui figure entre ces guillemets (donc chez moi "std"), il faut le remplacer dans le script du re-captcha sur cette ligne :

var $forms = $('form.contact-form-box);

Ce qui donne chez moi une fois le remplacement fait :

var $forms = $('form.std');

 

Et ne pas oublier de vider le cache dans le Back Office !

 

Belle journée à tous et courage ! ;)

Link to comment
Share on other sites

Bonjour,

 

voilà j'avais me même soucis de spam et j'ai utilisé le script tel que mis par Eolia le 21 janvier. Ca marche nickel, le recaptcha s'affiche bien sur la page contact en dessous du formulaire et fonctionne. Le seul soucis c'est que maintenant les messages envoyés ne sont visibles et consultables que dans le backoffice de Prestashop. Nous ne recevons plus la copie du message envoyé par le formulaire directement dans notre boîte mail d'OVH, ce qui était plus pratique pour répondre aux questions des clients....

J'ai été dans les paramètres avancés, dans partie "email" et j'ai cliquer sur "envoyer un mail test" vers notre adresse mail mais même souci : je ne reçois pas non plus ce mail test.  Quelqu'un d'autre à eu ce problème ? Est-ce que vous pourriez m'aider s'il vous plait ? D'avance un grand merci.

 

 

Link to comment
Share on other sites

Bonsoir je viens de rencontrer la même situation mais chez Gandi cette fois. Je ne sais pas si ça peut aider quelqu'un mais voilà si ça vous arrive vous aurez certainement l'erreur : "error 503 backend fetch failed varnish" cache server avec impossibilité de vous rendre dans le panneau de contrôle de votre instance puisque que ça vous renverra la même erreur  dans vos outils d'admin, logs, phpmyadmin etc...

La petite subtilité c'est qu'il faudra redémarrer votre instance, une fois redémarrée, immédiatement vous connecter sur votre panneau de contrôle et purger le cache Varnish. Ensuite foncer mettre votre boutique en maintenance pour procéder à l'ajout du script présent en début de publication, dans le cas échéant Varnish saturera très vite et vous vous retrouvez avec une belle page avec l'erreur "error 503 backend fetch failed varnish". J'ai mis 2 jours à trouver cette solution !

Y a également une coquille dans le code de l'index.php, une virgule de trop à virer dans l'array()
Initial :
 $opts = array('http' =>
                                                array(
                                                        'method'  => 'POST',
                                                        'header'  => 'Content-type: application/x-www-form-urlencoded',
                                                        'content' => http_build_query(
                                                                array(
                                                                        'secret' => 'XxXxX_ma_clé_XXxXxX',
                                                                        'response' => $_REQUEST['g-recaptcha-response'],
                                                                )
                                                        ),
                                                ),
   );
Remplacer par :
 $opts = array('http' =>
                                                array(
                                                        'method'  => 'POST',
                                                        'header'  => 'Content-type: application/x-www-form-urlencoded',
                                                        'content' => http_build_query(
                                                                array(
                                                                        'secret' => 'XxXxX_ma_clé_XXxXxX',
                                                                        'response' => $_REQUEST['g-recaptcha-response']
                                                                )
                                                        ),
                                                ),
   );

 

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