Heim > Artikel > Backend-Entwicklung > Detaillierte Erläuterung der PHP-Quellcode-Verschlüsselungsmethode
Obwohl PHP die beste Sprache der Welt ist, gibt es aufgrund schwach typisierter Sprachen auch einige Sicherheitsprobleme. In der Geschichte von WordPress gab es einige Sicherheitsprobleme, die durch Fehler in PHP selbst verursacht wurden. Beispielsweise nutzte die Cookie-Fälschung in CVE-2014-0166 die Fehler im PHP-Hash-Vergleich aus.
Das Folgende ist eine Einführung in eine Quellcode-Verschlüsselungstechnologie:
Verschlüsselungssoftware (php_screw)
Download-Adresse: http://sourceforge.net/projects/php-screw/
Beschreibung: PHP-Dateien werden normalerweise im Textformat auf der Serverseite gespeichert und sind für andere leicht lesbar Quellcode. Um die Quelle zu überprüfen. Um den Code zu schützen, können Sie die Methode der Verschlüsselung des Quellcodes verwenden. Um diese Funktion zu realisieren, benötigen Sie zwei Teile: Verschlüsselungsprogramm zur Realisierung der Verschlüsselung PHP-Dateien
Das andere ist: Die Implementierung der verschlüsselten PHP-Datei ist relativ einfach, die Implementierung des Letzteren erfolgt größtenteils in Form des PHP-Moduls.
(Schraube) kann die oben genannten Funktionen erreichen. Die neueste Version ist 1.5, die von SourceForge heruntergeladen werden kann.php_screw
php_screw
Beschreibung: Der Zweck der Installation besteht eigentlich darin, zwei Dateien zu generieren, eine ist eine Schraube zum Verschlüsseln von PHP-Dateien und das andere
ist das Parsing-Modul php_screw.so, das von PHP geladen wird
InstallationsumgebungSystem: Centos 5.3
Software : Apache 2.2.9
PHP 5.2.10
Alle oben genannten Umgebungen werden von Ihnen selbst heruntergeladen, konfiguriert und installiert. Bitte suchen Sie im Internet nach bestimmten Apache+php+mysql-Installationsmethoden.
Installationsschritte1. Dekomprimieren Sie mit tar tar -zxvf php_screw-1.5.tar.gz
2. Geben Sie das Verzeichnis php_screw-1.5 ein start Install
cd php_screw-1.5 phpize
In Bezug auf phpize muss nur das php5-dev-Modul im php5-dev-Erweiterungsmodul installiert werden.
./configure
3. Legen Sie das Passwort fest, das Sie für die Verschlüsselung verwenden
Kopieren Sie den Code wie folgt:
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.
4. Kompilieren
make
5. Kopieren Sie die Datei php_screw.so im Verzeichnis „modules“ in das Verzeichnis /usr/lib/php5/extension
cp modules/php_screw.so /usr/lib/php5/extension/
6. Bearbeiten Sie die Datei php.ini
im Verzeichnis php .ini-Datei, fügen Sie die folgende Anweisung hinzu
extension=php_screw.so
7. Starten Sie Apache neu
/srv/apache/bin/apachectl restart
9. Kopieren Sie die Verschlüsselungstool-Schraube in das Tools-Verzeichnis in das entsprechende Verzeichnis
cd tools make
Nach den oben genannten 10 Schritten wurde php_screw-1.5 vollständig installiert. Und jetzt unterstützt PHP auch die Interpretation verschlüsselter PHP-Dateien
Verwenden Sie1. Schreiben Sie nun eine zu verschlüsselnde PHP-Datei. Ich habe die folgende test.php-Datei geschrieben, um die Geschwindigkeit von PHP zu testen
Kopieren Sie den Code wie folgt:
cp screw /usr/bin/
Fügen Sie die obige test.php-Datei in /var/ ein. www/-Verzeichnis. Der Zugriff über den Browser zeigt die Geschwindigkeit von PHP in umfangreichen Berechnungen (grobe Schätzung)
2. Verschlüsseln Sie die von uns geschriebene PHP-Datei
<? $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"; ?>
Nachdem wir sie verschlüsselt haben, wird der Test im Verzeichnis durchgeführt ist jetzt die .php-Datei, die wir verschlüsselt haben. Die Quelldatei wurde in test.php.screw umbenannt und gespeichert.
Testen wir jetzt test.php, um zu sehen, ob es normal verwendet werden kann? Wie ist die Geschwindigkeit?
Ich habe es verglichen und festgestellt, dass die Geschwindigkeit vor und nach der Verschlüsselung ungefähr gleich ist und es im Grunde nicht viel Verlust gibt.
3. Stapelverschlüsselte Dateien
Nachdem die .html-Datei auf Debian, Apache2 und PHP5 getestet wurde, kann sie korrekt analysiert werden.
Wie funktioniert php_screw im aktuellen Verzeichnis, verschlüsseln Sie die im Verzeichnis enthaltenen Dateien und die Dateien im enthaltenden Verzeichnis als Ganzes
cd /var/www/ screw test.php
Auf diese Weise werden alle .php-Dateien im aktuellen Verzeichnis verschlüsselt.
Weitere verwandte Fragen finden Sie auf der chinesischen PHP-Website:
PHP-Video-TutorialDas obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der PHP-Quellcode-Verschlüsselungsmethode. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!