Child pages
  • Guide de l'administrateur système

Versions Compared

Key

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

...

La directive magic_quotes échappe (ou autrement dit, elle "ajoute un antislash|" (http://php.about.com/od/phpfunctions/g/addslashes_php.htm]") automatiquement les caractères spéciaux (', ", \, NULL) pour toutes les variables d'environnement (GET, POST, COOKIE, SERVER...). Cette option doit être désactivée car elle ajoute un antislash à toutes les variables, même celles n'en ayant pas besoin. De plus, certaines applications web sont mal conçues, et pourraient se retrouver avec deux antislash au lieu d'un, aboutissant à des donnés inexploitables.

...

Le compte d'administrateur MySQL par défaut est souvent "root" ou "admin", et donne accès à l'ensemble du contenu de la base de données, quel que soit le propriétaire de la base de données. L’administrateur a tous les droits, et peut lancer n'importe quelle action. Il vous faut donc protéger vos bases de données, afin d'empêcher que vos applications ne tombent sous le coup d'injections SQL (lire http://fr.wikipedia.org/wiki/Injection_SQL), ce qui peut arriver quand un utilisateur a accès au mot de passe de l'administrateur).

Warning

Si vous venez d'installer MySQL, donnez un mot de passe au compte "root", qui par défaut n'en a pas.

...

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.

...

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 formulaire : Générateur 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.

...

  1. Sécuriser le back-office
    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élanger 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).
  2. Sécuriser votre installation PHP
    1. Utilisez les réglages PHP requis et recommandés, au début du présent document.
  3. Effacez toujours le dossier /install de votre serveur après avoir installé ou mis à jour PrestaShop.
  4. Effacez les fichiers inutiles de votre serveur de production . :
    • tous les fichiers readme_xx.txt.
    • le fichier CHANGELOG.
    • le dossier /docs.
  5. Interdisez l'accès aux fichiers de votre thème, à l'aide d'un fichier .htaccess ayant le contenu suivant:
    Code Block
    html
    html
    <FilesMatch "\.tpl$">
    order deny,allow
    deny from all
    </FilesMatch>
    

...

  • Activer le cache de MySQL (ou demandez à votre hébergeur de le faire pour vous), et donnez-lui une taille élevée (par exemple, 256M).
  • N'oubliez pas de mettre $smarty->force_compile à "false" quand vous passez en mode de production, que ce soit via le fichier smarty.inc.php ou le back-office.
  • Si vous le pouvez, utiliser un cache d'opcode (ou demandez à votre hébergeur d'en installer un pour vous), afin d'alléger la charge de traitement du serveur. PrestaShop est compatible avec eAccelerator (http://eaccelerator.net/). "Opcode" signifie "code opérationnel", et défini l'état de compilation des fichiers dynamiques, qui peuvent être traités plus rapidement.
  • Si possible, placez vos éléments statiques sur plusieurs domaines ou sous-domaines, afin de profiter de connexions HTTP parallèles. Pour ce faire, ouvrez le fichier /config/defines.inc.php et ajoutez-y ces lignes (adaptées à vos propres besoins) :

...

Le code PHP de vos applications est la seule vulnérabilité de votre serveur. Il vous faut donc vous assurez de toujours utiliser les dernières version versions de vos applications : PHP, MySQL, Apache et toute les autres applications en place sur votre serveur.

...

  1. Mettez votre boutique en mode de maintenance, afin de ne pas perdre de nouveaux clients ou des commandes pendant le déplacement des données.
    Rendez-vous sur votre back-office, et sous l'onglet "Préférence", réglez l'option "Activer la boutique" à "Non".
  2. Déplacez vos fichiers
    1. Faites une sauvegarde de tous vos fichier : connectez-vous à votre serveur FTP, et copiez tous les fichiers et dossiers vers votre disque dur.
    2. Transférez les fichiers vers le nouvel hébergeur : connectez-vous au serveur FTP de votre nouvel hébergeur, et copiez-y tous les fichiers et dossier que vous avez téléchargé précédemment sur votre disque dur, tels quels.
  3. Déplacez vos données
    1. Faites une sauvegarde de votre base de données (un "dump") : connectez-vous à phpMyAdmin, cliquez sur l'onglet "Exporter", sélectionnez la base de donnés données de votre installation de PrestaShop, et cliquez sur le bouton "Exécuter". Enregistrez le fichier sur votre disque dur. Si phpMyAdmin arrive a à expiration avant l'export de toutes vos données, contactez votre hébergeur.
    2. Transférez votre dump SQL vers votre nouvelle base de données : connectez-vous au phpMyAdmin de votre nouveau serveur, cliquez sur le bouton "Importer", cliquez sur le bouton "Parcourir...", trouvez le fichier SQL que vous avez téléchargé, et cliquez sur le bouton "Exécuter" pour le mettre en ligne. Si phpMyAdmin arrive a expiration avant l'import de toutes vos données, contactez votre nouvel hébergeur.
  4. Configuration
    1. Sur le nouveau serveur, ouvrez le fichier /config/settings.inc.php et mettez à jour les réglages de la base de données (avec vos propres informations plutôt que les exemples donnés ci-dessous) :
      • define('_DB_SERVER_', 'sql.domainname.com');
      • define('_DB_NAME_', 'prestashop');
      • define('_DB_USER_', 'PS-user');
      • define('_DB_PASSWD_', 'djsf15');
      • define('_DB_PREFIX_', 'ps_');
    2. (version 1.4 et précédentes) Dans ce même fichier, mettez à jour le réglage l'URI de base ('/' étant la racine du serveur) :
      • define('__PS_BASE_URI__', '/prestashop/');
    3. Connectez-vous à votre back-office, rendez-vous dans l'onglet "Préférences", sélectionnez le sous-onglet "SEO & URLs", et modifiez le nom du domaine pour y mettre votre nouveau domaine. Faites de même pour votre domaine SSL.
      Dans les faits, cela mettra à jour les lignes "PS_SHOP_DOMAIN" et "PS_SHOP_DOMAIN_SSL" de la table SQL "ps_configuration".
    4. Dans votre back-office, rendez-vous dans l'onglet "Outils", sous-onglet "Générateurs", et regénérez le fichier .htaccess ainsi que le fichier robots.txt.
  5. Connectez-vous à votre serveur FTP et effacez le contenu des dossiers suivants, sauf le fichier index.php :
    • /tools/smarty/cache
    • /tools/smarty/compile
    • /tools/smarty_v2/cache
    • /tools/smarty_v2/compile
  6. Dans votre back-office, sous l'onglet "Préférences", mettez l'option "Activer la boutique" à "Oui".

C'est fait ! Vérifiez bien que tous vos liens fonctionnent, que tous vos produits, images, modules et thèmes sont toujours en place, et essayez de créer un nouveau compte ainsi que de passer une commande afin de vous assurez assurer que votre boutique fonctionne comme attendu.

...

  1. Mettez votre boutique en mode de maintenance, afin de ne pas perdre de nouveaux clients ou des commandes pendant le déplacement des données.
    Rendez-vous sur votre back-office, et sous l'onglet "Préférence", réglez l'option "Activer la boutique" à "Non".
  2. Déplacez vos fichiers
    1. Faites une sauvegarde de tous vos fichier : connectez-vous à votre serveur FTP, et copiez tous les fichiers et dossiers vers votre disque dur.
    2. Transférez les fichiers vers le nouvel hébergeur : connectez-vous au serveur FTP de votre nouvel hébergeur, et copiez-y tous les fichiers et dossier que vous avez téléchargé précédemment sur votre disque dur, tels quels.
  3. Configuration
    1. Sur le nouveau serveur, ouvrez le fichier /config/settings.inc.php et mettez à jour les réglages de la base de données (avec vos propres informations plutôt que les exemples donnés ci-dessous) :
      • define('_DB_SERVER_', 'sql.domainname.com');
      • define('_DB_NAME_', 'prestashop');
      • define('_DB_USER_', 'PS-user');
      • define('_DB_PASSWD_', 'djsf15');
      • define('_DB_PREFIX_', 'ps_');
    2. (version 1.4 et précédentes) Dans ce même fichier, mettez à jour le réglage l'URI de base ('/' étant la racine du serveur) :
      • define('__PS_BASE_URI__', '/prestashop/');
    3. Connectez-vous à votre back-office, rendez-vous dans l'onglet "Préférences", sélectionnez le sous-onglet "SEO & URLs", et modifiez le nom du domaine pour y mettre votre nouveau domaine. Faites de même pour votre domaine SSL.
      Dans les faits, cela mettra à jour les lignes "PS_SHOP_DOMAIN" et "PS_SHOP_DOMAIN_SSL" de la table SQL "ps_configuration".
    4. Dans votre back-office, rendez-vous dans l'onglet "Outils", sous-onglet "Générateurs", et regénérez le fichier .htaccess ainsi que le fichier robots.txt.
  4. Connectez-vous à votre serveur FTP et effacez le contenu des dossiers suivants, sauf le fichier index.php :
    • /tools/smarty/cache
    • /tools/smarty/compile
    • /tools/smarty_v2/cache
    • /tools/smarty_v2/compile
  5. Dans votre back-office, sous l'onglet "Préférences", mettez l'option "Activer la boutique" à "Oui".

C'est fait ! Vérifiez bien que tous vos liens fonctionnent, que tous vos produits, images, modules et thèmes sont toujours en place, et essayez de créer un nouveau compte ainsi que de passer une commande afin de vous assurez assurer que votre boutique fonctionne comme attendu.