Si vous avez besoin de crypter du code PHP dans votre application, alors un choix très populaire est ionCube qui a été conçu pour s’intégrer aussi bien aux petites applications qu’aux applications d’entreprise.

Généralement, le code source PHP est d’abord passé à travers l’encodeur ionCube avant qu’une application n’ait été distribuée. Ceci protège le code d’être lisible par l’homme ou d’être modifié.

Cependant, par défaut, le code source PHP crypté ne peut pas être exécuté directement sur le serveur. Il doit être décrypté avant que le moteur PHP ne puisse le traiter.

C’est là qu’intervient le ionCube Loader.

Introduction

Publiée pour la première fois en 2002, c’est une extension PHP qui décrypte à la volée le code (précédemment crypté) et le prépare à son exécution avec le reste de l’application PHP.

C’est une question de sécurité. Si une application PHP contient un code propriétaire, des algorithmes ou si des fonctions de licence logicielle sont nécessaires, l’utilisation d’ionCube est la solution idéale pour protéger votre code source.

Pour encoder des fichiers PHP, vous devez d’abord acheter l’encodeur ionCube. Il existe également une version en ligne de l’encodeur qui inclut la prise en charge du cryptage du code PHP gratuitement à des fins de test (vous en saurez plus ci-dessous).

Quant au ionCube Loader, il est gratuit à télécharger et à installer sur votre serveur. Il existe différentes versions du ionCube Loader, chacune conçue pour un système spécifique (Linux, Windows, MacOS, etc.), et des architectures 32 bits ou 64 bits.

Une fois téléchargé, vous devrez installer la version du ionCube Loader qui correspond à la version PHP en cours d’exécution sur votre serveur car chaque téléchargement disponible contient plusieurs versions du ionCube Loader pour toutes les différentes versions de PHP.

Si vous n’êtes pas sûr de la version que vous avez besoin de télécharger et d’installer, ne vous inquiétez pas, nous couvrirons cela en détail sous peu.

Si vous utilisez une HHVM (HipHop Virtual Machine) pour traiter PHP, vous devez savoir que le ionCube Loader ne supporte pas le HHVM.

Toutefois, il s’agit d’un point discutable puisque HHVM a mis fin au support de PHP à partir de la version v3.30. Ceci n’est donc pertinent que si vous utilisez une ancienne version de HHVM. Si vous utilisez toujours HHVM et que vous avez besoin de crypter des fichiers PHP avec ionCube, vous devrez passer à un moteur PHP plus standard qui supporte ionCube.

Préparation de l’installation

Pour terminer l’installation manuelle du ionCube Loader, il est recommandé d’être à l’aise avec les commandes communes du terminal. Si vous connaissez déjà le terminal, n’hésitez pas à passer à la section suivante.

Dans ce guide, nous faisons référence aux commandes de terminal suivantes :

  • cat – Affichage du contenu d’un fichier vers le terminal.
  • cd – Modifier le répertoire de travail courant.
  • cp – Copier un ou plusieurs fichiers.
  • echo – Ajouter un message sur le terminal.
  • grep – Recherche textuelle puissante.
  • head – Afficher les premières lignes d’un ou plusieurs fichiers.
  • ls – Lister les fichiers et répertoires.
  • mkdir – Créer un nouveau répertoire.
  • nano – Éditeur de texte compact à l’intérieur de la fenêtre du terminal.
  • ssh – Créer une nouvelle connexion SSH distante.
  • tar – Extraire des fichiers d’une archive.
  • wget – Télécharger des fichiers via HTTP.

Comprendre ce que font ces commandes de terminal et comment les utiliser facilitera grandement le processus d’installation du ionCube Loader. Cliquez sur les liens pour obtenir des informations plus détaillées sur chaque commande.

Activer ionCube Loader dans MyKinsta

Si vous êtes un client de Kinsta, vous pouvez activer ionCube Loader dans MyKinsta. Pour activer le ionCube Loader, allez dans Sites > Outils > ionCube Loader, et appuyez sur le bouton « Activer ». Pour l’instant, le ionCube Loader ne peut être activé que sur les sites utilisant PHP 7.4 ou 8.1 (ionCube n’est pas supporté par PHP 8.0). ionCube est gratuit pour les clients de Kinsta et peut être installé sur n’importe quel plan.

Activer ionCube Loader dans MyKinsta.
Activer ionCube Loader dans MyKinsta.

Si vous n’êtes pas un client Kinsta, nous vous expliquons ci-dessous comment installer manuellement ionCube Loader sur un VPS. Assurez-vous que vous avez un accès SSH complet et que vous êtes à l’aise pour exécuter les commandes du terminal.

Installation manuelle de ionCube Loader

Il y a un ensemble spécifique d’étapes nécessaires pour compléter l’installation manuelle du ionCube Loader sur votre serveur. Ce processus peut varier légèrement en fonction de la configuration exacte de votre serveur, mais tant que vous utilisez un serveur basé sur Linux, les différences devraient être minimes.

Au cours du processus d’installation, nous couvrirons en détail chacune des étapes suivantes :

  1. Connectez-vous à votre site à distance via SSH.
  2. Téléchargez et extrayez l’extension PHP ionCube Loader.
  3. Copie du fichier ionCube Loader.SO.
  4. Configuration et redémarrage du serveur.
  5. Vérification de l’installation de ionCube Loader
  6. Test de l’installation ionCube
  7. Vérifier les logs d’erreurs pour les problèmes d’installation

Connectez-vous à votre site à distance via SSH

Avant de pouvoir télécharger et commencer l’installation de ionCube Loader, nous devons établir une connexion distante sécurisée au serveur via SSH (Secure Shell). C’est devenu la méthode standard pour interagir avec un serveur via la ligne de commande et nous allons en faire une méthode étendue pendant le processus d’installation de l’extension PHP de ionCube Loader.

Pour ouvrir une nouvelle connexion SSH, vous devez avoir les informations suivantes à portée de main, qui doivent être saisies chaque fois que vous vous connectez :

  • Nom d’hôte
  • Numéro de port
  • Nom d’utilisateur
  • Mot de passe

C’est une bonne idée de vérifier ces informations et de les noter à l’avance. Habituellement, ces informations peuvent être trouvées sur votre serveur cPanel ou le tableau de bord comme MyKinsta. Votre hébergeur pourra vous aider si vous ne trouvez pas l’information que vous cherchez.

Vous pouvez également vous connecter à votre serveur distant à l’aide des clés SSH. Cette méthode est généralement considérée comme un moyen plus sûr de se connecter via SSH. Votre serveur doit prendre en charge les deux méthodes.

Si vous voulez utiliser les clés SSH au lieu de saisir la combinaison nom d’utilisateur/mot de passe à chaque fois que vous vous connectez, jetez un coup d’œil à ceci pour obtenir plus de renseignements.

Si vous êtes sous MacOS, ou Linux, les systèmes d’exploitation puis le terminal intégré seront bons pour l’accès SSH. Si vous êtes sous Windows, vous devrez utiliser un client SSH tel que PuTTY car cette fonctionnalité n’est pas disponible par défaut.

PuTTY - Client Windows SSH
PuTTY – Client Windows SSH

Nous utiliserons le terminal macOS tout au long de ce guide. Pour vous connecter à votre serveur via SSH, vous aurez besoin des informations suivantes :

  • Nom d’utilisateur
  • Nom d’hôte
  • Numéro de port
  • Mot de passe (SFTP)

La commande de terminal SSH prend la forme :

ssh username@hostname -p portnumber

Le numéro de port est généralement 22, mais il peut être différent pour votre serveur spécifique. Par exemple, il peut y avoir différents numéros de port utilisés pour les serveurs partagés et dédiés, vérifiez alors auprès de votre hébergeur si vous n’êtes pas sûr avant de vous connecter.

Une fois la commande ssh saisie, un mot de passe vous sera demandé, après quoi la connexion SSH à distance sera terminée et vous aurez un accès direct au serveur.

Connexion SSH distante au serveur
Connexion SSH distante au serveur

Télécharger et extraire l’extension PHP de ionCube Loader

Il existe différentes versions de ionCube Loader disponibles en téléchargement. Celles-ci sont classées par plateforme et par date de sortie afin de faciliter le choix de la bonne version en fonction de votre système particulier.

ionCube Loader
Archives de téléchargement de ionCube Loader

Vous pouvez choisir de vous abonner aux mises à jour de ionCube Loader pour vous assurer que votre extension de Loader reste à jour avec la dernière version.

Pour savoir quelle version de ionCube est la bonne pour votre serveur, nous pouvons utiliser la commande PHP qui affiche les données détaillées de configuration PHP.

[phpinfo()](https://www.php.net/manual/en/function.phpinfo.php)

Pour utiliser cette fonction PHP afin d’afficher les données nécessaires, suivez les étapes suivantes :

  • Connectez-vous à votre serveur via SSH.
  • Créez un fichier PHP.
  • Ajoutez la fonction phpinfo().
  • Enregistrer le fichier dans le dossier racine du site web
  • Afficher dans un navigateur.
  • Recherchez des références ionCube
  • Supprimez le fichier une fois terminé.

C’est beaucoup de travail pour simplement afficher les données de configuration PHP du serveur. Heureusement, il existe un moyen plus simple de le faire via le terminal.

Exécuter la commande php -i servira la même réponse du moteur de CLI PHP que phpinfo() le fait. Cependant, nous ne voulons que les premières lignes, car elles contiennent les informations pertinentes sur l’environnement serveur dans lequel PHP est exécuté.

Cela peut se faire avec :

php -i | head -n 5

qui affichera les informations suivantes :

Déterminer la version du Loader
Déterminer la version du ionCube Loader

Comme vous pouvez le voir, notre serveur est basé sur Linux et le x86_64 fait référence à un système 64 bits. Le ionCube Loader que nous devrions télécharger est donc l’archive tar.gz Linux 64 bits. Assurez-vous de télécharger l’archive du ionCube Loader correspondant à votre système.

L’archive du ionCube Loader doit être téléchargée dans un répertoire temporaire, alors créons-en un maintenant avant toute autre chose :

cd /tmp
mkdir ioncube
cd ioncube/

Pour télécharger l’archive ionCube, utilisez la commande wget.

wget 
https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz

Cela permet de télécharger le package du ionCube Loader dans le répertoire temporaire et d’afficher la progression du téléchargement jusqu’à ce qu’il soit terminé.

Téléchargement d’archive ionCube
Téléchargement d’archive ionCube

Une fois l’archive téléchargée, extrayez-la dans le même répertoire /tmp avec :

tar xvfz ioncube_loaders_lin_x86-64.tar.gz
Extraire les archives ionCube
Extraire les archives ionCube

Ceci extrait tous les fichiers archivés dans un nouveau répertoire ioncube. Énumérez-les avec ls ioncube :

Fichiers du ionCube Loader
Fichiers du ionCube Loader

Comme vous pouvez le voir, il y a plusieurs fichiers individuels du ionCube Loader avec l’extension .so. Chaque nom de fichier contient un numéro différent qui se réfère à la version PHP en cours d’exécution sur votre serveur, il est donc important que vous installiez le bon.

Plus tôt, nous avons lancé la commande php -i | head -n 5 pour obtenir les informations de l’OS serveur. Les deux premières lignes nous donnent aussi la version PHP qui dans notre cas était 7.2.22.

Pour déterminer rapidement quel fichier du ionCube Loader nous devrions utiliser, n’indiquez que les fichiers qui contiennent _7 afin de faciliter la lecture des seuls fichiers qui nous intéressent.

Nous pouvons le faire en transférant la sortie depuis ls dans grep pour filtrer la liste des fichiers :

ls ioncube | grep _7

ce qui se traduit par :

Fichiers du ionCube Loader filtrés
Fichiers du ionCube Loader filtrés

La version de PHP la plus proche de la nôtre est ioncube_loader_lin_7.2.so. Il y a un autre fichier apparié appelé ioncube_loader_lin_7.2_ts.so mais nous pouvons l’ignorer car c’est la version « thread-safe » qui n’est pas pertinente pour notre configuration serveur particulière.

Incidemment, au cas où vous vous poseriez la question, les fichiers .so sont un type de fichier de bibliothèque qui signifie « shared object ». Ces fichiers sont un peu similaires aux fichiers DLL (Dynamic Link Library) que vous connaissez peut-être si vous utilisez Windows.

Copier le fichier ionCube Loader.SO

Pour terminer l’installation du ionCube Loader, il suffit de copier le fichier ioncube_loader_lin_7.2.so dans le répertoire des extensions PHP.

Pour connaître l’emplacement du répertoire des extensions, saisissez la commande de terminal suivante :

php -i | grep extension_dir

Ce qui retourne une chaîne contenant les informations nécessaires.

extension_dir => /opt/cpanel/ea-php72/root/usr/lib64/php/modules => /opt/cpanel/ea-php72/root/usr/lib64/php/modules

N’oubliez pas que cela sera probablement unique pour votre propre serveur. Maintenant que nous connaissons le répertoire de destination, nous pouvons copier le fichier du ionCube Loader.

sudo cp /tmp/ioncube/ioncube/ioncube_loader_lin_7.2.so /opt/cpanel/ea-php72/root/usr/lib64/php/modules
Copier le ionCube Loader dans le répertoire d'installation
Copier le ionCube Loader dans le répertoire d’installation

Pour l’instant, le ionCube Loader est au bon endroit, mais nous devons faire savoir à PHP que l’extension est disponible et où elle est installée.

Nous pouvons le faire en modifiant le fichier de configuration principal php.ini et en ajoutant une nouvelle entrée zend_extension spécifiant le chemin vers ioncube_loader_lin_7.2.so.

Cependant, php.ini est assez lourd à modifier via le terminal mais nous pouvons contourner ce problème en profitant du fait que PHP supporte l’utilisation de fichiers de configuration personnalisés.

La seule mise en garde est que ceux-ci doivent être situés dans un répertoire spécifique que nous pouvons déterminer en saisissant :

php -i | grep 'additional .ini files'
Trouver le répertoire personnalisé de configuration PHP
Trouver le répertoire personnalisé de configuration PHP

Nous avons maintenant toutes les informations pour créer notre fichier de configuration personnalisé et l’ajouter à l’emplacement correct.

bash -c 'echo "zend_extension=/opt/cpanel/ea-php72/root/usr/lib64/php/modules/ioncube_loader_lin_7.2.so" > /opt/cpanel/ea-php72/root/etc/php.d/00-ioncube.ini'

Notez que notre fichier.ini personnalisé a été préfixé par 00, ce qui est un moyen de le charger avant les autres fichiers de configuration PHP pour s’assurer qu’il fonctionne sans entrer en conflit avec les autres fichiers de configuration personnalisés.

Configuration et redémarrage du serveur

L’extension PHP du ionCube Loader doit maintenant être installée correctement. Mais avant de pouvoir l’utiliser, nous devons faire un peu de ménage.

Après l’installation, il est important de procéder comme suit :

  • Recharger le serveur
  • Redémarrer le moteur PHP
  • Vider le cache du site

Le serveur peut être rechargé via la ligne de commande, mais la commande exacte varie selon les différentes configurations du serveur. Puisque nous utilisons Nginx sur notre serveur, nous avons utilisé :

sudo /etc/init.d/nginx reload

PHP peut être redémarré directement depuis cPanel ou le tableau de bord. Le redémarrage de PHP prend généralement plusieurs secondes et une popup de notification s’affiche une fois l’opération terminée.

La dernière chose que vous devriez faire est de vider le cache du site pour vous assurer que vous voyez les changements les plus récents apportés à la configuration du serveur.

Une fois ces dernières étapes terminées, le ionCube Loader devrait maintenant être installé et configuré correctement sur votre serveur, prêt à décrypter les fichiers PHP encodés.

Vérification de l’installation du ionCube Loader

Pour vérifier si le ionCube Loader est installé et configuré correctement, vous pouvez procéder comme suit.

Tout d’abord, utilisez php -i

Si le ionCube Loader est installé, les détails seront affichés.

Cependant, cela fournit un énorme volume de données au terminal que vous devez ensuite faire défiler manuellement pour rechercher des références ionCube. En fait, la sortie de php -i est généralement supérieure à 1000 lignes de texte.

Vous pouvez utiliser la commande du terminal php -i | wc -l pour voir le nombre exact de lignes.

Il n’est vraiment pas viable de rechercher manuellement dans la sortie du terminal, nous pouvons donc utiliser la sortie de php -i directement dans la commande grep et ne renvoyer que les informations qui nous intéressent.

Pour ce faire, saisissez ce qui suit dans une fenêtre de terminal (qui est toujours connectée à votre serveur web via SSH) :

php -i | grep ioncube
Afficher les informations de configuration PHP
Afficher les informations de configuration PHP

Si vous voyez des références au ionCube Loader, c’est que l’installation est réussie.

Vous pouvez aussi également accéder aux informations sur le ionCube Loader via la commande du terminal php -v. La version spécifique du ionCube Loader s’affichera si elle est installée.

Afficher les informations sur la version de PHP
Afficher les informations sur la version de PHP

Si vous ne voyez aucune sortie relative à ionCube via php -i ou php -v, c’est que quelque chose a mal tourné dans l’installation. Dans ce cas, vous pouvez essayer de refaire une partie (ou la totalité) des étapes d’installation au besoin pour voir si cela résout le problème.

Si le problème persiste, contactez votre hébergeur qui pourra vous fournir les actions nécessaires.

Une autre façon recommandée serait de créer une page phpinfo, de la charger et de rechercher « ioncube ». De cette façon, vous saurez si ionCube est installé avec succès et quelle version.

Test de l’installation ionCube

En plus de simplement vérifier que le ionCube Loader semble installé, il vaut la peine d’effectuer un test en direct pour s’assurer que l’extension fonctionne comme prévu avant de l’utiliser sur des fichiers de production.

Faisons cela maintenant en encodant un fichier PHP et en testant s’il s’exécute correctement lorsqu’il est chargé sur le serveur. Une des façons les plus simples d’encoder du code PHP est

Codeur ionCube en ligne
Codeur ionCube en ligne

Avant de téléverser les fichiers à encoder, vous devez vous inscrire pour obtenir un compte ionCube gratuit. Cliquez sur l’élément de menu Connexion et suivez les invites à l’écran pour créer un compte.

Une fois connecté, vous aurez accès à la page de téléversement de l’encodeur.

Téléverser le fichier PHP à encoder
Téléverser le fichier PHP à encoder

Normalement, il y a des frais pour l’encodage de fichiers PHP pour le code de production, mais c’est gratuit à des fins de test.

Les fichiers de test encodés ne seront décodés activement via l’extension PHP du décodeur ionCube que pendant 8 heures au maximum, après quoi ils expireront et ne seront plus décodés. Mais c’est plus qu’assez de temps pour tester que tout fonctionne comme il se doit.

Créez un fichier de test PHP et téléversez-le dans l’encodeur en ligne. Assurez-vous que la case Test d’encodage est cochée.

Le fichier téléversé est alors automatiquement placé dans une file d’attente pour être encodé. Si ce processus est réussi, après quelques secondes, vous verrez une page affichant les résultats ainsi qu’un lien de téléchargement pour accéder au fichier encodé.

Fichiers ionCube encodés téléversés
Fichiers ionCube encodés téléversés

Lorsque vous téléchargez le fichier, vous remarquerez que l’horodatage a été ajouté pour le différencier du fichier original.

Par exemple, notre nom de fichier original ioncuber-loader-test.php a été encodé puis mis à disposition pour téléchargement en tant que ioncuber-loader-test-encoded-190924-100632.php.

Vous pouvez inclure n’importe quel code PHP valide dans le fichier de test. Pour notre fichier de test PHP, nous avons ajouté une fonction simple qui retourne un numéro à afficher avec un message.


<?php

function mySecretFunction() {
  return '42';
}

echo "<h1>ionCube Loader Test Page</h1>";
echo "<p>Output of encoded function: " . mySecretFunction() . 
"</p>";

Par comparaison, le fichier téléchargé contenait ce qui suit après avoir été exécuté dans l’encodeur :


<?php //0059b
// 10.2 72
// 
// IONCUBE ONLINE ENCODER EVALUATION
// THIS FILE IS LICENSED TO BE USED FOR ENCODER TESTING
// PURPOSES ONLY AND SHOULD NOT BE DISTRIBUTED
// 
if(!extension_loaded('ionCube Loader')){$__oc=strtolower(substr(php_uname(),0,3));$__ln='ioncube_loader_'.$__oc.'_'.substr(phpversion(),0,3).(($__oc=='win')?'.dll':'.so');if(function_exists('dl')){@dl($__ln);}if(function_exists('_il_exec')){return _il_exec();}$__ln='/ioncube/'.$__ln;$__oid=$__id=realpath(ini_get('extension_dir'));$__here=dirname(__FILE__);if(strlen($__id)>1&&$__id[1]==':'){$__id=str_replace('\\','/',substr($__id,2));$__here=str_replace('\\','/',substr($__here,2));}$__rd=str_repeat('/..',substr_count($__id,'/')).$__here.'/';$__i=strlen($__rd);while($__i--){if($__rd[$__i]=='/'){$__lp=substr($__rd,0,$__i).$__ln;if(file_exists($__oid.$__lp)){$__ln=$__lp;break;}}}if(function_exists('dl')){@dl($__ln);}}else{die('The file '.__FILE__." is corrupted.\n");}if(function_exists('_il_exec')){return _il_exec();}echo("Site error: the ".(php_sapi_name()=='cli'?'ionCube':'ionCube')." PHP Loader needs to be installed. This is a widely used PHP extension for running ionCube protected PHP code, website security and malware blocking.\n\nPlease visit ".(php_sapi_name()=='cli'?'get-loader.ioncube.com':'get-loader.ioncube.com')." for install assistance.\n\n");exit(199);

?>
HR+cPrb0lpjMgGF/p2/rAXWaVsF5lgbOo0LYkBQu2sZ7cHDIXwoQ+LPTtnDTw0hOl5Yfp7CvmV5c
bV90201GkQl3Lr5trbc0XXBJxV+hFqwsyPhXemDwQ37Lf0HHckqLWF5yXiIoErSIQzS8RbI1n49R
e2kRxmrwA+P2WbIZabhhXUPGZcn91NmJyW4qKz3xynZh+nvarORpi8tXqwPA3QUY7QZtwABJQs3U
lLpo3+X9sowLMgzttHBNNcGOZ73HVSgZ9eUtTRCeaswT4geKbT2qa0LgL8vhtl7RuymBklX1Rm0Q
1Aete/XaFhX6YG+B66t6nXBisZ5+P1O3YomFuW+rhbMbT1w3lk+MY+Ri5SCnRuvMig8ZWkchG3wX
XMpoGoP2uWectVSOROY+vmaGD+WTFjEFyw1C93T5qU4If5Ql/AdXA7s+ISvH8D5rqKSheLfnBQ2d
yx5yu5FEMrJwLA9g2g3xf2OSV5X1+1DmkRVEvY0tcukjjYVCcvbDKSBQpigXvYiTHAouI5ANmYbR
pMURAoAO9gUSm3Bul7HZdaQRwH2Fyp3na3hWGiSTdp5EXEDMTKRWtiB5nPPQ3MmVO6F2Er62h3Ov
N0oR6uCDj/y11u3Re6BQ2laN2k9m9ylnsMYketpe+OOMaoA6+n1yVpYWkBra+vr+Veh9+oQkXQBP
ZG4bUtd+4UIWW057ZMkKS4+2S3dSDHjcU/Op9ZSp2VFpSOlaqssNgA9WMGP0b8xhbTOPx6FqgY09
/WnmQyto9goSeIfAcc1braP74ILD9DLwVRG1aXHIC6WGhPYzafs+gut8DHebHUzSPj3JYu9t6/w2
1Nnuc5Dso5SnAa8v2AabXUvZBpQrYTf8tY1L0zL8sqTIvTlv/tRCpsu4hrwFg7hqx+6OsXaWiLwY
xtfwBfCbGS1a/c2+OhUujEllco6gB1KoekhLv9xVj70cRWRgnf+nSCcCc2bFjk4+VtJh+07M9CRO
vqaTu78gagPGMVFYebH5AvOLOKn8Ao1A1lX+GdiD0mLr8BAQ2jrZx1i8wZ0ILNuKRFWvFnYK4Bjg
SYImW2oc6Mg/u50B/Y+mjAeIbpUfm+Ksetd5n2sFetQt831K3u891bKBPw8AzqtGzhLjihFhORCG
BIwx+aA8AvUMeR4Uuk/FdyxATCqly93/crGkCwUQWrvPY5hA9KvtmOFvYPUVpuFZKS5BPzUySat3
ChtDQpr7H7N9phQvoSZ7pTBOGoyfVDTn1abQVMYQXbrW+yee+wBnGiUpGpR3MgkUPHKX/N36+P8o
Ld5obAtVtNjgiQjcYwI6KkrNmH22sqHlILAnR7yUn0==

Ceci est complètement méconnaissable à partir du code source original donc l’encodeur a fait son travail !

La question importante est maintenant : l’extension du décodeur ionCube installée sera-t-elle capable d’analyser le fichier et de le décoder pour qu’il puisse être exécuté comme du code PHP normal ?

Pour le savoir, nous avons téléversé les deux fichiers PHP sur le serveur et les avons visualisés dans le navigateur. Tout d’abord, le fichier original contenant le code PHP brut.

Test du fichier PHP brut
Test du fichier PHP brut

La page s’affiche comme prévu. Passons maintenant au fichier PHP encodé.

Test de fichier PHP encodé
Test de fichier PHP encodé

L’extension du décodeur ionCube s’affiche exactement de la même manière afin de vérifier que le décodeur ionCube est installé et qu’il fonctionne correctement.

Vérifier les logs d’erreurs pour les problèmes d’installation

Une dernière chose que vous pouvez faire pour vérifier que l’installation est réussie est de consulter les journaux d’erreurs du serveur et de rechercher les entrées récentes concernant l’installation de l’ionCube.

Si vous voyez quelque chose de similaire à ce qui suit dans le journal des erreurs, vous devrez contacter votre hébergeur pour qu’il puisse l’examiner plus en détail :

PHP Fatal error: The file 
/www/sitename_xxx/public/wp-content/themes/theme-name/functions.php was encoded by the ionCube Encoder for PHP 5.6 and cannot run under PHP 7.1

Les étapes nécessaires pour accéder aux journaux d’erreurs varient d’un hébergeur à l’autre, il est donc préférable de vérifier d’abord si vous n’êtes pas sûr où ils se trouvent.

Les clients de Kinsta peuvent voir le journal d’erreur dans leur tableau de bord MyKinsta.

Résumé

À présent, nous espérons que l’extension PHP ionCube Loader sera installée et fonctionnera sur votre serveur. Prenons un moment pour récapituler ce que nous avons fait.

Nous avons appris que le ionCube Loader est une extension PHP dont l’objectif est de décrypter à la volée les fichiers PHP déjà cryptés, au fur et à mesure de leur requête par le serveur.

Pour ce faire, le Loader doit être installé correctement via une série de commandes de terminal lorsqu’il est connecté au serveur via une connexion SSH.

Une fois que vous avez établi une connexion sécurisée avec votre serveur, vous pouvez commencer le processus d’installation de l’extension du ionCube Loader qui peut être décomposé en une série d’étapes :

  1. Télécharger le bon ionCube dans un répertoire temporaire sur votre serveur.
  2. Extraire l’archive téléchargée. Sélectionnez le fichier du Loader .so ionCube approprié parmi les nombreux fichiers extraits qui correspondent à la version installée de PHP.
  3. Copiez le fichier ionCube loader.so dans le dossier des extensions PHP. Ce sera un emplacement fixe unique à votre installation PHP particulière.
  4. Activez le ionCube Loader en PHP en éditant le fichier php.ini principal ou en créant un fichier.ini personnalisé. Ajoutez une nouvelle extension zend_extension pointant vers l’emplacement du fichier du ionCube Loader installé.
  5. Pour démarrer le traitement des fichiers PHP cryptés, le serveur doit être rechargé et le moteur PHP doit être redémarré. Le processus exact pour ce faire variera d’un serveur à l’autre. Parfois, il est également nécessaire de vider la mémoire cache du site.
  6. Vérifiez que l’installation de l’ionCube a réussi via le terminal en utilisant les commandes php -i et php -v.
  7. L’étape finale consiste à effectuer un test en direct pour s’assurer que le ionCube Loader fonctionne comme prévu. Vous pouvez utiliser l’option pour les fichiers PHP gratuitement à condition que ce ne soit qu’à des fins de test.

Si quelque chose ne va pas pendant le processus d’installation, ou juste pour la tranquillité d’esprit, vous pouvez également vérifier les journaux du serveur pour les erreurs qui ont pu se produire.

À votre tour : quelle est votre expérience avec le ionCube Loader ? Faites-le nous savoir dans les commentaires !

David Gwyer

David Gwyer is a WordPress developer at WPGoplugins, JavaScript programmer, and technical writer with 20+ years industry experience. His current development work is focused on creating engaging blocks for the exciting new WordPress Editor. Connect with David on Twitter