Maison > Article > développement back-end > Que utiliser pour protéger la sécurité du code php ? vis plus peut!
https://github.com/del-xiong/screw-plus
http://git.oschina.net/splot/php-screw-plus
screw plus est un php open source Extension, sa fonction est de crypter les fichiers PHP. Il existe de nombreux services de cryptage PHP sur Internet, mais la plupart d'entre eux ne fournissent qu'un cryptage au niveau de l'obscurcissement. Si quelqu'un obtient le fichier crypté et le demande, il peut être piraté tant que vous l'avez. assez de patience. La différence est que Screw Plus utilise des extensions pour crypter et déchiffrer, et il s'agit d'un cryptage AES256 à haute résistance populaire dans le secteur financier mondial. À moins que le serveur ne soit piraté, les fichiers cryptés obtenus par les pirates ne seront qu'un fichier crypté. un tas de personnages tronqués.
Le même niveau de cryptage inclut ioncube et le zend guard officiel, mais les deux sont facturés. Le coût d'au moins plusieurs milliers de yuans par an ne vaut pas la peine d'être essayé pour les développeurs ordinaires. Je n’ai pas besoin de dépenser un centime de plus.
Ce qui suit utilise l'environnement d'installation en un clic LNMP comme exemple pour démontrer la configuration de Screw Plus
Clonez d'abord une copie du code sur le serveur
git clone https://git.oschina.net/splot /php-screw-plus.git
Entrez le répertoire du projet, puis exécutez le fichier phpize de phpize est un fichier exécutable officiellement fourni pour générer dynamiquement un environnement de développement étendu. Il se trouve généralement dans la corbeille. répertoire de php. PHPIZE de LNMP dans /USR/LOCAL/PHP/BIN/PHPIZE
/USR/LOCAL/PHP/BIN/PHPIZE
CONFIGURATION Pour :
Php Api Version : 20100412
zend Module NON : 20100525
Zend Extension Api No : 220100525
Après une exécution réussie, vous pouvez voir la version actuelle de l'API php, la version de l'extension de l'API, etc. L'étape suivante consiste à démarrer la configuration. La commande de configuration est ./configure --with-php-config=[php-config], [php-config] se trouve généralement également dans le répertoire bin de php, écrivez simplement le chemin absolu.
./configure --with-php-config=/usr/local/php/bin/php-config
Si aucune erreur n'est signalée, la configuration est réussie et vous pouvez démarrer la prochaine étape de compilation.
Avant de compiler, nous pouvons modifier la clé cryptée. Ouvrez php_screw_plus.h et vous pouvez voir que le début est #define CAKEY "..." et changez la valeur à l'intérieur en une clé assez complexe, de préférence plus de 16 chiffres. . Par exemple : 9mqss6q7WsBpTMOZ
vi php_screw_plus.h
Après modification, lancez directement la compilation et exécutez la commande make Si Build complete est affiché à la fin, cela signifie que la compilation est réussie et que l'extension est dans les modules. Si une erreur est signalée, veuillez la réparer selon les invites, puis recompiler après make clean.
make
...
Build terminé.
Ce que nous avons compilé ci-dessus est le programme de décryptage, et le programme de cryptage nous oblige également à le compiler manuellement. Entrez simplement dans le répertoire tools et exécutez la commande make. Si aucune erreur n'est signalée, l'extension est complètement compilée.
cd tools/
make
Ensuite, vous devez ajouter le chemin de l'extension à php.ini. Vous pouvez copier modules/php_screw_plus.so dans le répertoire d'extension php ou vous pouvez ajouter le chemin absolu directement à ini. Préférez généralement le chemin absolu afin qu'après avoir modifié et compilé l'extension, il ne soit pas nécessaire de la copier à nouveau.
vi php/etc/php.ini
Ajoutez un chemin absolu, par exemple
extension=/home/php_screw_plus-1.0/modules/php_screw_plus.so
Ensuite, redémarrez le service php. Vous pouvez ensuite mettre un. php pour afficher les informations phpinfo, si vous voyez l'invite suivante, cela signifie que l'extension a pris effet.
La dernière étape est le processus de cryptage.
Dans le répertoire des outils étendus, exécutez ./screw [chemin], [chemin] peut être un seul fichier ou un dossier, puis le cryptage peut être réalisé.
Une fois le cryptage terminé, vérifiez le code source. Vous constaterez qu'à l'exception des premiers caractères anglais, le reste est tronqué.
Mais lorsque j'ouvre le site Web, php fonctionne normalement, comme s'il n'y avait pas de cryptage. Après les tests, la vitesse de décryptage est d'environ 100 Mo par seconde et la perte de performances de PHP lui-même est très faible, généralement inférieure à 20 millisecondes.
Screw plus dispose également d'une fonction qui empêche l'exécution de fichiers php non autorisés, de sorte que les pirates seront toujours vulnérables même s'ils téléchargent le code.
Modifiez de la même manière dans php_screw_plus.h, changez la valeur après STRICT_MODE à 1, puis make clean && makerecompilez et redémarrez php, puis ouvrez le site Web précédemment crypté, l'exécution est normale, mais nous téléchargeons un clair fichier texte php à volonté, et le résultat sera vide.
La raison est que l'en-tête du fichier PHP non chiffré ne contient pas la clé d'identification et que l'extension renverra un contenu vide Même si un pirate informatique obtient la clé et l'ajoute, le contenu sera déchiffré en code tronqué et. ne peut toujours pas être exécuté. Avec la protection de Screw Plus, même si l'intégralité du site Web est téléchargée ou si un code malveillant est téléchargé, cela ne causera pas de dommages au site Web.
Apprentissage recommandé : "Tutoriel vidéo PHP"
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!