Bien que PHP soit le meilleur langage au monde, il existe également quelques problèmes de sécurité dus à des langages faiblement typés. Il y a eu quelques problèmes de sécurité dans l’histoire de WordPress causés par des failles dans PHP lui-même. Par exemple, la falsification de cookies dans CVE-2014-0166 a profité des failles de la comparaison PHP Hash.
Ce qui suit est une introduction à une technologie de cryptage de code source :
Logiciel de cryptage (php_screw)
Adresse de téléchargement : http://sourceforge.net/projects/php-screw/
Description : les fichiers PHP sont généralement stockés au format texte côté serveur, et il est facile pour les autres de lire le code source. Afin de vérifier la source Pour protéger le code, vous pouvez utiliser la méthode de cryptage du code source. Pour réaliser cette fonction, vous avez besoin de deux parties
L'une est : un programme de cryptage pour réaliser le cryptage de. Fichiers PHP
L'autre est : Le fichier PHP crypté est analysé pour obtenir les résultats d'exécution. La mise en œuvre du premier est relativement simple, il s'agit simplement d'un programme. La mise en œuvre du second est principalement implémentée sous la forme. du module php.
php_screw
(vis) peut réaliser les fonctions ci-dessus. La dernière version est la 1.5, qui peut être téléchargée depuis sourceforge
php_screw
est un programme de cryptage PHP développé par des japonais, mais. uniquement Peut fonctionner sous LINUX
Installation
Description : Le but de l'installation est en fait de générer deux fichiers, l'un est une vis pour crypter les fichiers PHP, et le other One
est le module d'analyse php_screw.so chargé par php
Environnement d'installation
Système : centos 5.3
Logiciel : Apache 2.2.9
PHP 5.2.10
Tous les environnements ci-dessus sont téléchargés, configurés et installés par vous-même. Veuillez rechercher sur Internet les méthodes d'installation spécifiques d'Apache+php+mysql.
Étapes d'installation
1. Décompressez avec tar tar -zxvf php_screw-1.5.tar.gz
2. Entrez dans le répertoire php_screw-1.5. start Install
cd php_screw-1.5 phpize
Concernant phpize, il suffit d'installer le module php5-dev dans le module d'extension php5-dev.
./confiugre
3. Définissez le mot de passe que vous utilisez pour le cryptage
Copiez le code comme suit :
vi my_screw.h -- Please change the encryption SEED key (pm9screw_mycryptkey) into the values according to what you like. The encryption will be harder to break, if you add more values to the encryption SEED array. However, the size of the SEED is unrelated to the time of the decrypt processing. * If you can read and understand the source code, to modify an original encryption logic will be possible. But in general, this should not be necessary. OPTIONAL: Encrypted scripts get a stamp added to the beginning of the file. If you like, you may change this stamp defined by PM9SCREW and PM9SCREW_LEN in php_screw.h. PM9SCREW_LEN must be less than or equal to the size of PM9SCREW.
Compilez
make
5. Copiez le fichier php_screw.so du répertoire modules dans le répertoire /usr/lib/php5/extension
cp modules/php_screw.so /usr/lib/php5/extension/
6. Modifiez le fichier php.ini
dans le php. .ini, ajoutez l'instruction suivante
extension=php_screw.so
7. Redémarrez Apache
/srv/apache/bin/apachectl restart
8 Compilez l'outil de chiffrement
cd tools make
9. dans le répertoire approprié
cp screw /usr/bin/
Après les 10 étapes ci-dessus, php_screw-1.5 a été complètement installé. Et maintenant, PHP prend également en charge l'interprétation des fichiers PHP cryptés
Utiliser
1. Écrivez maintenant un fichier PHP à crypter.
J'ai écrit le fichier test.php suivant pour tester la vitesse de php
Copiez le code comme suit :
<? $a=0; $t=time(); for($i=0;$i<5000000;$i++) {$a=$a*$i;} $t1=time(); echo "<p>"; echo "It used:"; echo $t1-$t; echo "seconds"; ?>
Mettez le fichier test.php ci-dessus dans /var/ www/répertoire. L'accès via le navigateur affichera la vitesse de PHP dans les calculs à grande échelle (estimation approximative)
2 Cryptez le fichier PHP que nous avons écrit
cd /var/www/ screw test.php
Après l'avoir chiffré, le test dans le répertoire. est maintenant Le fichier .php est ce que nous avons chiffré. Le fichier source a été renommé test.php.screw et stocké.
Testons test.php maintenant pour voir s'il peut être utilisé normalement ? Comment est la vitesse ?
Je l'ai comparé et j'ai découvert que la vitesse avant et après le cryptage est à peu près la même et qu'il n'y a fondamentalement pas beaucoup de perte.
3. Fichiers chiffrés par lots
Après avoir testé sur Debian, Apache2, php5 pour chiffrer le fichier .html, il peut être analysé correctement ;
Comment php_screw dans le courant répertoire , crypte les fichiers contenus dans le répertoire et les fichiers du répertoire contenant dans son ensemble
find ./ -name "*.php"-print|xargs -n1 screw //加密所有的.php文件 find ./ -name "*.screw" -print/xargs -n1 rm //删除所有的.php源文件的备份文件
De cette façon, tous les fichiers .php du répertoire courant sont cryptés.
Pour plus de questions connexes, veuillez visiter le site Web php chinois : 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!