Maison  >  Article  >  développement back-end  >  Explication détaillée de la méthode de cryptage du code source PHP

Explication détaillée de la méthode de cryptage du code source PHP

王林
王林avant
2019-09-06 10:13:345745parcourir

Explication détaillée de la méthode de cryptage du code source PHP

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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer