Maison > Article > développement back-end > Pourquoi le code source PHP devrait-il être crypté ?
Le code PHP est un code WEB open source qui ne nécessite pas de compilation et est un langage interprété. (C'est-à-dire que l'ajout d'un interpréteur avec l'extension correspondante dans WebServer peut compléter l'analyse et le traitement du code).
Selon les caractéristiques interprétées du langage PHP et combiné aux besoins individuels du projet, nous pouvons utiliser php.exe (interpréteur PHP) pour interpréter et appliquer le code PHP, rendant PHP adapté non seulement aux environnements WEB mais également pour les traités localement, tels que GTK, etc.
J'ai un projet en main qui utilise la méthode du canal Delphi (PIP) pour appeler l'interpréteur phpexe afin d'interpréter le code PHP pour terminer le processus dans le WEB.
Mais d'un autre côté, les inconvénients se reflètent. Parce que PHP adopte une méthode open source, différents utilisateurs peuvent facilement voir le programme source écrit en langage PHP, analyser le programme source et obtenir facilement des connexions de données. les procédures et même les informations importantes telles que les noms de serveurs ne sont pas non plus propices à la protection des droits d'auteur des développeurs de logiciels. Par conséquent, il est nécessaire de crypter et d'autoriser le code source PHP, c'est-à-dire (Encodage et autorisation de licence)
Il existe actuellement deux principaux types de logiciels sur le marché qui sont plus populaires sur le marché pour crypter et autoriser PHP :
(1) ZendGuard par Zend Company. —-La dernière version 5.0.1 (17/06/2008)
(2) ionCube PHP Encode de ionCube Company. ---La dernière version 6.5 (17/06/2008)
Pour ces deux logiciels Encode couramment utilisés, ils ont des fonctions et des avantages respectifs différents.
Zend Guard
Zend Guard ne peut crypter que des fichiers avec des balises PHP ou du code source (tels que : .php, inc, etc.), et peut enregistrer d'autres fichiers texte sans balises PHP. Les fichiers ne peut pas être crypté, période de support, code d'enregistrement.
Prend en charge le cryptage des versions PHP4.2.X ~ 5.2.X.
Le ZendOptimizer (moteur PHP) utilisé peut améliorer l'optimisation de la vitesse du code source de plus de 20 à 50 %. Combiné avec ZendGuard, il peut améliorer l'optimisation de la vitesse des performances de plus de 50 %, et ZendOptimizer peut être installé dans de nombreux systèmes traditionnels actuels. (Lorsque vous utilisez le chiffrement ZendGuard, vous pouvez choisir la version ZendOptimizer pour un traitement d'optimisation plus approfondi). De plus, ZendGuard ne peut être utilisé que dans un environnement configuré avec ZendOptimizer et ne peut pas fonctionner indépendamment. (Doit être configuré dans le fichier php.ini)
* A noter également l'erreur de ZendGuard sous PHP4. Il y aura une grande différence entre le chemin absolu et le chemin relatif de PHP4 lors du cryptage.
Dans l'environnement PHP4.4.1, s'il y a les deux fichiers suivants :
Test.php
Référence :
<?php require_once(”inc/test1.php”); ?>
inc/Test1.php
Citation :
<?php echo realpath(dirname(__FILE__)); ?>
Sans chiffrement, le résultat affiché est : C:/LocalWeb/zendtest/inc
Mais après chiffrement, il s'affiche : C:/LocalWeb/zendtest-encode/zendtest
On peut constater que le répertoire inc a été supprimé après le cryptage ZendGuard, et l'adresse du fichier avant son inclusion est affichée. (C'est-à-dire que __FILE__ est affiché comme une constante temporaire).
*Ce problème a été testé et n'a pas été trouvé dans l'environnement PHP5.2.6.
ionCube PHP Encode
ionCube PHP Encode, développé par ionCube, est utilisé pour crypter des fichiers PHP ou non-PHP. ionCube a été testé pour être supérieur au ZendGuard de Zend en termes de fonctionnalités. Il prend non seulement en charge les méthodes de cryptage telles que la date d'expiration, le code d'enregistrement, etc., mais prend également en charge les méthodes de cryptage complexes telles que les adresses IP et MAC. De plus, ionCube peut non seulement crypter des fichiers PHP avec des balises PHP ou du code source, mais également crypter des fichiers non PHP enregistrés en mode texte, tels que XML, JS, CSS, etc. (Mais vous devez utiliser l'API de lecture fournie par ionCube pour les opérations de lecture et d'écriture.)
La version cryptable de PHP va de PHP4.0.6 à 5.2.X (2 niveaux supérieurs à ZendGuard)
ionCube et Zend De même, dans Afin d'améliorer l'optimisation des performances PHP, un moteur PHP correspondant est également fourni, qui peut fournir des fonctions d'optimisation PHP pour la plupart des systèmes d'exploitation, mais malheureusement, une version Windows du moteur PHP n'a pas été fournie jusqu'à présent.
Quant au problème de chemin dans l'environnement PHP4 mentionné précédemment dans ZendGuard, il n'apparaît pas dans ionCube. On voit que ionCube est relativement stable.
Pour ionCube, les fichiers avec des balises PHP ou du code source sont compressés et cryptés, et les fichiers texte non php sont cryptés. Lors de la lecture, vous devez utiliser "ioncube_read_file/ioncube_write_file" pour lire et écrire des fichiers. Par conséquent, avant d'utiliser le cryptage ionCube, le code PHP correspondant doit être modifié avant de pouvoir être utilisé.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!