Un article du très bon site effi10.com Quelques astuces et conseils pour améliorer la sécurité d’une boutique Prestashop : des trucs simples mais essentiels lorsque l’on gère un site e-commerce !

Prestashop : la sécurité avant tout !

Les dernières versions de Prestashop offrent globalement un haut niveau de performances, et de bonnes bases en terme de sécurité (avec un « bon » thème s’entend et un paramétrage serveur correct !) ; pour autant, il y a de petites améliorations que l’on peut apporter afin de limiter les risques.

Préambule : cet article concerne les versions 1.5.x et 1.6.x de Prestashop…

Phase 1 : vérifier le paramétrage de sa boutique

Aussi saugrenu que cela puisse paraître, il est indispensable de passer par cette étape : en effet, de simples options mal paramétrées au niveau du back-office peut ouvrir la porte aux pirates et autres personnes mal intentionnées… La première étape consiste donc (en mode admin) à se rendre dans les Préférences / Paramètres généraux, et à vérifier les options suivantes :

Paramétrage de la sécurité dans Prestashop 1.6

  1. Améliorer la sécurité du front-office : à cocher impérativement !
  2. Autoriser les iframes dans les champs HTML : à décocher si vous n’utilisez pas de contenus multimedia externes dans vos descriptions ce qui n’est pas mon cas (exemple : insertion de vidéos Youtube)
  3. Utiliser la bibliothèque HTMLPurifier (version 1.6 uniquement) à cocher, pour éviter tout risque d’insertion de code HTML pouvant occasionner de sérieux soucis (exemple : une balise META Robots noindex… bien comprise par Google même dans le body HTML !)

Concernant le SSL, tout dépendra si votre configuration serveur vous autorise à utiliser le protocole HTTPS (nécessite usuellement un serveur privé – dédié ou virtuel – et un certificat SSL… Chez moi je ne l’utilise pas puisque les paiements se font sur le site de la banque, systématiquement)

Phase 2 : désactiver (si cela n’est pas déjà fait) le mode « Debug »

Dans Prestashop 1.6, l’accès au mode « debug » de Smarty ne peut plus se réaliser par le backoffice, il faut donc uniquement vérifier le fichier de configuration defines.inc.php dans le sous-répertoire config. Le mode débogage (développement) doit y être désactivé :

1

2

3

if (!defined('_PS_MODE_DEV_'))

define('_PS_MODE_DEV_', false);

Dans Prestashop 1.5, le débogage peut être activé ou désactivé depuis le back-office dans Paramètres avancés / Performances :

Prestashop : choix des paramètres de débugage

  1. Console de débogage : Sélectionner Ne pas ouvrir la consoleimpérativement
  2. Clé pour la console de débogage : modifier la valeur par défaut et y placer votre propre clé (impératif !)

Phase 3 : tuner le .htaccess pour limiter les points d’entrée

Ici, on touche directement à la configuration de votre serveur (enfin de votre site), aussi il convient de tester chaque ligne à rajouter dans votre .htaccess qui suit avant une mise en production définitive (si vous affichez une page blanche ou une erreur HTTP 500, alors votre serveur ne prend pas en charge la ligne de commande ajoutée !)

La première chose à faire va être d’interdire la lecture de votre fichier .htaccess (une action valable pour n’importe quel site web, au passage – notez la protection « forte » prenant en compte toutes les variantes de casse ;-) ) mais également à tous les fichiers contenant potentiellement du code, affichable « en clair » dans votre navigateur ! Dans le cas d’une boutique Prestashop, ce sont bien les fichiers .tpl qui sont évidemment visés !

1

2

3

4

5

6

7

8

9

<Files ~ "^.*\.([Hh][Tt][Aa])">

 order allow,deny

 deny from all

 satisfy all

</Files>

<FilesMatch "\.(inc|tpl|h|ihtml|sql|ini|conf|class|bin|spd|themes|modules|exe|asa|bak|old)$">

deny from all

</FilesMatch>

On interdit donc ici l’accès direct à toutes les extensions citées en ligne 7, dont font parti nos fichiers .tpl (code valable également pour n’importe quel site !)

La seconde chose va consister à inhiber la signature du serveur afin de compliquer (un peu) la tâche à d’éventuels pirates :

La 3ème étape va limiter les requêtes envoyées à 1 Mo afin de pallier à toute tentative d’attaque DDoS (déni de service) :

Il s’agit de mesures basiques mais néanmoins indispensables pour limiter la casse et maintenir un niveau de service digne de vos clients !

La 4ème et dernière étape va consister à limiter les possibilités de mise sous frame afin d’éviter toute tentative de « clickjacking », de failles XSS (ne concerne qu’Internet Explorer dans ses versions 8 et 9) et de risques de « MIME sniffing » (en clair, faire passer un fichier de script pour une image…) :

1

2

3

4

5

6

7

8

Header always append X-Frame-Options SAMEORIGIN

Header set X-Content-Type-Options "nosniff"

Header set X-XSS-Protection "1; mode=block"

Je ne vais pas détailler ces lignes, je pense qu’elles parlent d’elles-même :-)

Conclusion

Je vous ai présenté quelques mesures simples pour sécuriser un peu votre boutique Prestashop ; il est bien évidemment possible d’aller (beaucoup) plus loin, notamment dans le contrôle d’accès du back-office par l’ajout d’un login / mot de passe au niveau serveur (un excellent tutoriel est lisible ici à ce propos)

Et vous, avez-vous d’autres astuces pour sécuriser encore plus votre site e-commerce ?

Source: Sécurité Prestashop : comment sécuriser votre boutique Prestashop

Optimization WordPress Plugins & Solutions by W3 EDGE