Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Nous disposons maintenant d'un utilisateur pour la base de données "prestashop". Pensez à faire ceci pour chacune des applications web que vous ajoutez à votre serveur.

Vous pouvez maintenant installer PrestaShop en toute sécurité.

Établissement d'une authentification de base (.htaccess)

Afin de mieux protéger votre installer PrestaShop, nous devons établir une authentification de base pour votre dossier d'administration.

L'un des buts du fichier .htaccess (lire http://fr.wikipedia.org/wiki/.htaccess) est de protéger vos dossiers et tous ceux qu'il contient. Cela ne fonctionne que pour les serveurs Apache, et une poignée d'autres. Assurez-vous que vous utilisez un serveur Apache avant de créer un fichier .htaccess.

Pour mettre en place une authentification de base sur votre dossier d'administration, vous devez ajouter un fichier .htaccess à ce dossier (par exemple, dans /var/www/prestashop/admin) :

...

AuthUserFile /var/www/.prestashop_admin
AuthName "Prestashop Admin Access"
AuthType Basic
Require valid-user
Options -Indexes

Explication :

  • AuthUserFile: donne le lien du fichier contenant la liste des utilisateurs autorisés, et leurs mots de passe. .prestashop_admin est un fichier texte.
  • AuthName: défini le message à afficher quand la fenêtre d'authentification s'affiche.
  • AuthType: défini le type d'authentification.
  • Require: demande à ce que les utilisateurs se connectent pour accéder au contenu. valid-user permet à plusieurs utilisateurs de se connecter et d'accéder au dossier.
  • Options: défini les options du dossier. -Indexes désactive la génération automatique d'index de dossier, dans le cas où aucun fichier d'index n'est disponible.

Voici un modèle de contenu pour le fichier .prestashop_admin avec deux logins et leurs mots de passe :

...

login1:$apr1$/wJeliK8$e9OzgRaVL8J8wSsFBXjor1
login2:$apr1$yV65Kqqz$cFt3sV2.Q7hhLRRUJDo5a/

Ce fichier contient les identifiants et les "hash" des mots de passe de ceux qui sont autorisés à accéder au dossier (un hash est une "empreinte" unique d'une chaîne de caractère, permettant de l'identifier rapidement.
Pour créer le hash d'un mot de passe, vous pouvez passer par ce générateur de fichier .htpasswd : http://aspirine.org/htpasswd.html.

Il est chaudement recommandé de mettre ce fichier dans un dossier qui n'est pas accessible à vos applications web, donc au-dessus du dossier /openbase_dir. Cela empêche les injections au fichier .htpasswd, dans le cas où l'une de vos applications était vulnérable.

Il est également possible de limité l'accès par domaine ou adresse IP, via le fichier .htaccess :

...

Order Allow, Deny
Deny from all
Allow from .myprestashop.com
Allow from 127.0.0.1

Cependant, vous ne devriez pas utiliser cette sorte de directive :

...

<LIMIT GET POST>
Require valid-user
</LIMIT>

Rendre votre installation de PrestaShop plus sûre

Les recommandations ci-dessus sont arrangées par ordre d'importance :

...

  1. Renommez votre dossier /admin après l'installation de PrestaShop. C'est essentiel, au point que vous ne pouvez pas accéder à votre administration si vous n'avez pas fait cette modification. Assurez-vous d'utiliser un nom de dossier réellement unique, idéalement un mélangeur de lettre et de chiffres, par exemple "pr3st4dm1n".
  2. Protégez votre dossier d'administration avec les fichiers .htaccess et .htpasswd, ou demandez à votre hébergeur de le faire pour vous.
  3. Ne laissez pas votre navigateur garder la trace de vos mots de passe (via des cookies ou n'importe quel autre outil).
  4. Choisissez un mot de passe complexe, mélangeant lettres, chiffres et même ponctuation, comme "5r3XaDR#". Vous pouvez et même devriez utiliser un générateur de mot de passe, tel que celui de PCTools (http://www.pctools.com/guides/password/) ou celui de GRC (https://www.grc.com/passwords.htm).

    Tip

    Plus sûr encore qu'un mot de passe : vous pouvez utiliser une phrase secrète (ou "phrase de passe"). Non content d'être plus facile à retenir, une phrase secrète est sensiblement plus difficile à trouver pour un hacker, même à l'aide d'outil d'attaque automatique (attaque par force brute ou attaque par dictionnaire).

    Une phrase secrète n'a besoin que d'être longue et facilement mémorisable pour vous. N'importe quel dicton peut faire l'affaire ("Tant va la cruche à l'eau qu'à la fin elle se brise"), mais une phrase absurde aura encore moins de chance d'être découverte par un hacker. Par exemple, "Beaucoup de chauffards confondent le tracteur avec des pochettes".

    Il existe des générateurs de phrase secrète, qui vous permettent d'obtenir une phrase unique facilement. Par exemple : http://romainvaleri.online.fr/, http://passphra.se/ ou http://www.fourmilab.ch/javascrypt/pass_phrase.html.

    Les mots de passe de PrestaShop ne sont pas limités en nombre de caractères ou en type de caractères.

...

  1. Utilisez les réglages PHP requis et recommandés, au début du présent document.

...

  • tous les fichiers readme_xx.txt.
  • le fichier CHANGELOG.
  • le dossier /docs.

Interdisez l'accès aux fichiers de votre thème, à l'aide d'un fichier .htaccess ayant le contenu suivant:

...

<FilesMatch "\.tpl$">
order deny,allow
deny from all
</FilesMatch>

Sécurité

Lisez notre page dédiée à la sécurisation de PrestaShop, pleine de conseils faciles à appliquer.

Peaufinage des performances

...