Nous avons eu récemment l’occasion de découvrir chez un de nos clients un module Paybox comportant de nombreuses failles de sécurités. Nous tenions à alerter nos lecteurs sur le fait que ce module est disponible dans les forums dédiés à Prestashop. Il se peut aussi que le module fourni par un prestataire, ait une de ces failles.
Ces failles ne sont pas seulement des erreurs de codes malencontreuses (comme une variable mal protégée), mais belle et bien des erreurs dans la construction du module Prestashop. D’après le manuel que fournit Paybox à tout utilisateur, pour communiquer avec la banque, certaines façons de faire sont à proscrire.
Dans cette optique nous avons développé un module Paybox qui respecte les remarques que nous faisons le long de cet article (module actuellement en production chez certains de nos clients). Nous proposons celui-ci pour votre boutique Prestashop au prix de 100 €, avec installation, mise à jour et support gratuit. Vous pouvez commander la prestation directement sur notre boutique.
Comment savoir si le module Paybox pour Prestashop que vous utilisez possède ces failles :
Il vous suffit de simuler un achat sur votre boutique pour arriver à la page : Choisissez votre mode de paiement. Lorsque vous êtes sur cette page, afficher le code source de la page (avec le bouton droit de la souris).
Faites une recherche, sur celle-ci, du texte suivant : form id = »paybox_form » si vous obtenez des données comme celle ci-dessous pour votre formulaire, c’est que votre module Paybox n’est pas sécurisé :
<input type=”hidden“ value=”1“ name=”PBX_MODE“/>
<input type=”hidden“ value=”1999888“ name=”PBX_SITE“/>
<input type=”hidden“ value=”98“ name=”PBX_RANG“/>
<input type=”hidden“ value=”3“ name=”PBX_IDENTIFIANT“/>
<input type=”hidden“ value=”19703“ name=”PBX_TOTAL“/>
<input type=”hidden“ value=”978“ name=”PBX_DEVISE“/>
<input type=”hidden“ value=”3;CP;01-10-09-22:06:47“ name=”PBX_CMD“/>
<input type=”hidden“ value=”a.a@a.com“ name=”PBX_PORTEUR“/>
<input type=”hidden“ value=”pbx_amount:M;ref:R;pbx_auth:A;pbx_trans:T;pbx_error:E;pbx_sign:K“ name=”PBX_RETOUR“/>
<input type=”hidden“ value=”POST“ name=”PBX_RUF1“/>
<input type=”hidden“ value=”https://localhost/prestashop12/modules/paybox/validation.php“ name=”PBX_EFFECTUE“/>
<input type=”hidden“ value=”https://localhost/prestashop12/modules/paybox/validation.php“ name=”PBX_REFUSE“/>
<input type=”hidden“ value=”https://localhost/prestashop12/order.php“ name=”PBX_ANNULE“/>
</form>
Paybox vous recommande clairement de ne pas faire cela (A la page 13 de leur manuel de mise en service). En fait vous passez en clair toutes vos données d’identifications et de paiements dans votre page html. Une personne malicieuse pourrait alors modifier ces données pour passer une transaction ou intercepter les données envoyées vers le serveur Paybox. Il lui suffirait par exemple de changer le montant pour un montant bien inférieur. Le serveur validerait la transaction, et vous accepteriez une commande avec un montant inférieur à celui qu’elle devrait avoir. Avec ce genre de pratique si jamais, vous ne vérifiez pas bien chacune de vos commandes, vous allez livrer votre client, pour un montant différent de ce qu’il devrait être.
De plus dans le module d’installation fournis par Paybox il y a un certain nombre fonctions à utiliser lors du retour des informations de Paybox vers votre boutique, mais ce n’est pas le cas dans le module en question.
Fonctionnalité du module Paybox pour Prestashop :
Pour ceux qui ne connaissent pas l’utilité d’un module Paybox : Installer un module Paybox pour votre boutique PrestaShop, vous permet d’accepter les transactions de vos clients par carte bancaire sur votre boutique PrestaShop. Vous bénéficiez ainsi d’un TPE sécurisé pour faire l’interface entre votre boutique et votre banque. La souscription d’un contrat avec Paybox ne vous décharge pas de l’obligation d’avoir un contrat VAD avec votre banque.
Quels sont les avantages à utiliser Paybox :
- Le contrat TPE Paybox est plus facilement accessible, même pour les petites boutiques, que celui de votre banque (il vous est demandé moins de garantie et d’ancienneté).
- Vous pouvez passer d’une banque à l’autre gratuitement (après avoir signé un contrat VAD avec la banque correspondante).
- L’interface de saisie des coordonnées bancaire chez Paybox est largement personnalisable (couleurs, logos, police, boutons).
- Possibilité d’accepter au-delà des carte bancaires (VISA & MASTERCARD), plus de 15 méthodes de paiement (Amex, Diners, JCB, E-CB, Cofinoga, Sofinco, Finaref, Aurore, 1Euro.com, PayPal, Carte Cadeau, Paiement en « n » fois, Quasi Cash, Carte CUP, …).
Tarification du module Paybox pour Prestashop :
Pour avoir une idée de ce que va vous couter la mise en place de ce module Paybox sur votre boutique Prestashop, nous vous résumons les tarifs de bases :
- Frais de mise en service : 390 € HT
- Abonnement mensuel (avec 100 transactions incluses) : 23,74 € HT
- Transaction supplémentaire : 0,069 € HT
- Accès aux cartes privatives ou au paiement en 3 fois : 8,96 € Ht chacun
Ces tarifs sont ceux de l’année 2009, il faut bien sur rajouter ceux que vous demandera votre banque dans votre contrat VAD.
Conclusion :
Nous ne sommes pas ici pour critiquer un module utilisant ces méthodes et encore moins leurs auteurs. Cet article a pour but de prévenir nos lecteurs, utilisateurs de ce type de module qu’il faut rapidement le remplacer par un module Paybox Prestashop plus sécurisé. Il est indispensable lorsque vous utilisez des modules de paiement pour votre boutique, de bien vérifier le niveau de sécurité de ceux-ci.
Dans cette optique nous avons développé un module Paybox qui respecte les remarques que nous avons fait le long de cet article (module actuellement en production chez certains de nos clients). Nous proposons celui-ci pour votre boutique Prestashop au prix de 85 €, avec mise à jour et support gratuit. Nous pouvons aussi vous proposer son installation sur votre boutique pour 15 € supplémentaire. Il vous suffit de nous contacter par mail ou de commander directement sur notre boutique.
Bonjour,
ce blog manque d’articles frais ….
En effet, il n’est pas toujours évident de tout combiner ! Nous allons remédier à cela rapidement !
🙂
Bonjour,
Un membre du forum prestashop m’a fait remarquer que votre article mentionnait indirectement le module que j’ai mis en ligne gratuitement sur le forum.
Sur le principe, il n’y a aucun soucis sur la remarque bien que je souhaite préciser que si on modifie le montant, la commande sera en erreur de paiement et que donc le marchand se rendra compte de la tentative.
Après pour ce qui est des informations de paiement, je ne voies pas forcémment ce qu’elles ont de confidentielles (c’est comme un RIB).
Concernant le module que vous proposez, s’agit-il d’une évolution que celui que j’ai mis en ligne ou bien un module parti de zéro ?
Vincent.
Bonjour Vincent,
Je ne sais pas si c’est votre module. Nous l’avons vu chez un de nos clients qui nous avait dit qu’il l’avait trouvé sur le forum.
Même si l’erreur de paiement est mentionné, ce sont des problèmes en plus pour le gérant. Parole de l’un contre celle de l’autre, comment prouver que le client à modifier…
Et puis bon, si Paybox déconseille cette méthode, c’est que des problèmes ont dû ou peuvent arriver.
Concernant le module que nous proposons, c’est un module complétement développé de zéro avec nos mains, validé par Paybox et utilisé chez de nombreux clients.
Ne vous en faites pas, nous ne faisons pas de l’argent sur votre module 😉
oui c’est effectivement le module que j’ai mis en ligne sur le forum 😉
vu ce qu’il se fait et surtout ce qu’il se dit ça m’aurait effectivement gênait de voir le module que j’ai mis en ligne gratuitement en version payante.
sinon merci pour l’information sur les préconisations Paybox.
Je ne sais pas trop ce qu’il se dit, mais ce n’est en effet pas notre genre 😉
Sauf que… L’envoi à PayBox passe par une phase de cryptage de ces données couplées à une clé privée qui n’est pas dans le formulaire, et les informations de retour sont toujours vérifées afin de comparer justement que le montant payé via la plateforme correspond bien au montant de la facture, avant validation du paiement… Le petit malin qui s’amuserait donc à changer le prix dans le formulaire HTML… Effectuerait simplement un règlement « dans le vide ».. Faut pas faire peur aux gens comme ça pour rien ! 😉
A l’époque (2010), il n’y avait qu’un simple bandeau sur Prestashop affichant que le montant de réglement n’était pas correct…
Donc tous les clients ayant un processus un peu automatisé avaient des problèmes… C’est suite à cela que nous avons rédigé cet article.
Nous ne nous sommes pas amusé à écrire un article juste pour faire peur 🙂
Pareillement ce module n’a pas de protection activée pour les paiements en mode test, il suffit juste de remplacer les URLS par celles du mode test de Paybox pour arriver sur la page de paiement test (qui ne débitera pas le client). Et Prestashop validera bien la commande sans message d’erreur.
Il faut faire une vérification sur la variable authentification pour cela.
Bonjour,
Vous dites ne pas utiliser le lancement de Paybox par mode « formulaire HTML », avec quel(s) mode(s) PBX_MODE avez-vous codé et configuré ce module ?
Bonjour,
Soit par clé HMAC soit par mode CGI.
Cordialement,