Heim  >  Artikel  >  Backend-Entwicklung  >  Was ist zum Schutz der PHP-Codesicherheit zu verwenden? Schraube plus Dose!

Was ist zum Schutz der PHP-Codesicherheit zu verwenden? Schraube plus Dose!

藏色散人
藏色散人nach vorne
2021-08-13 13:41:403430Durchsuche

https://github.com/del-xiong/screw-plus

http://git.oschina.net/splot/php-screw-plus

screw plus ist ein Open-Source-PHP Erweiterung, ihre Funktion besteht darin, PHP-Dateien zu verschlüsseln. Es gibt viele PHP-Verschlüsselungsdienste im Internet, aber die meisten von ihnen bieten nur eine Verschlüsselung auf Verschleierungsebene. Wenn jemand die verschlüsselte Datei erhält und danach fragt, kann sie geknackt werden, solange Sie sie haben Genug Geduld. Der Unterschied besteht darin, dass Screw Plus Erweiterungen zum Verschlüsseln und Entschlüsseln verwendet und es sich um eine in der globalen Finanzbranche beliebte hochfeste AES256-Verschlüsselung handelt. Sofern der Server nicht geknackt wird, sind die von Hackern erhaltenen verschlüsselten Dateien nur ein Haufen verstümmelter Zeichen.

Die gleiche Verschlüsselungsstufe umfasst ioncube und den offiziellen zend Guard, aber beide kosten mindestens mehrere tausend Yuan pro Jahr und sind für normale Entwickler nicht den Versuch wert. Sie müssen keinen Cent mehr ausgeben.

Im Folgenden wird die LNMP-Ein-Klick-Installationsumgebung als Beispiel verwendet, um die Konfiguration von Screw Plus zu demonstrieren.

Klonen Sie zunächst eine Kopie des Codes auf den Server.

git-Klon https://git.oschina.net/splot /php-screw-plus.git

Geben Sie das Projektverzeichnis ein und führen Sie dann die phpize-Datei aus. PHPize ist eine offiziell bereitgestellte ausführbare Datei zum dynamischen Generieren einer erweiterten Entwicklungsumgebung. Sie befindet sich im Allgemeinen im Bin Verzeichnis von PHP. LNMPs PHPIZE in /USR/LOCAL/PHP/BIN/PHPIZE

/USR/LOCAL/PHP/BIN/PHPIZE


KONFIGURIEREN für:


Php Api-Version: 20100412


zend Modul-Nr.: 20100525


Zend Extension API-Nr.: 220100525

Nach erfolgreicher Ausführung können Sie die aktuelle PHP-API-Version, Erweiterungs-API-Version usw. sehen. Der nächste Schritt besteht darin, mit der Konfiguration zu beginnen. Der Konfigurationsbefehl lautet
./configure --with-php-config=[php-config]

, [php-config] befindet sich normalerweise auch im Bin-Verzeichnis von PHP, schreiben Sie einfach den absoluten Pfad.

./configure --with-php-config=/usr/local/php/bin/php-config


Wenn kein Fehler gemeldet wird, ist die Konfiguration erfolgreich und Sie können mit dem nächsten Schritt der Kompilierung beginnen.

Vor dem Kompilieren können wir den verschlüsselten Schlüssel ändern. Öffnen Sie

php_screw_plus.h

und Sie können sehen, dass der Anfang #define CAKEY „…“ ist, und den darin enthaltenen Wert in einen ausreichend komplexen Schlüssel ändern, vorzugsweise mit mehr als 16 Ziffern . Zum Beispiel: 9mqss6q7WsBpTMOZ

vi php_screw_plus.h


Starten Sie nach der Änderung direkt die Kompilierung und führen Sie den Befehl „make“ aus, was bedeutet, dass die Kompilierung erfolgreich war und die Erweiterung in Modulen vorliegt. Wenn ein Fehler gemeldet wird, reparieren Sie ihn bitte gemäß den Anweisungen und kompilieren Sie ihn nach der Bereinigung erneut.

make

...

Build abgeschlossen.


Was wir oben kompiliert haben, ist das Entschlüsselungsprogramm, und das Verschlüsselungsprogramm erfordert auch, dass wir es manuell kompilieren. Geben Sie einfach das Tools-Verzeichnis ein und führen Sie den Befehl make aus. Wenn keine Fehler gemeldet werden, ist die Erweiterung vollständig kompiliert.

cd tools/

make

Dann müssen Sie den Erweiterungspfad zu php.ini hinzufügen. Sie können module/php_screw_plus.so in das PHP-Erweiterungsverzeichnis kopieren oder den absoluten Pfad direkt zu ini hinzufügen Normalerweise wird der absolute Pfad bevorzugt, sodass nach dem Ändern und Kompilieren der Erweiterung kein erneutes Kopieren erforderlich ist.

vi php/etc/php.ini

Absoluten Pfad hinzufügen, zum Beispiel

extension=/home/php_screw_plus-1.0/modules/php_screw_plus.so


Dann starten Sie den PHP-Dienst neu Wenn Sie die folgende Eingabeaufforderung sehen, bedeutet dies, dass die Erweiterung wirksam geworden ist.

Was ist zum Schutz der PHP-Codesicherheit zu verwenden? Schraube plus Dose!Der letzte Schritt ist der Verschlüsselungsprozess.

Führen Sie im erweiterten Tools-Verzeichnis ./screw [Pfad] aus. [Pfad] kann eine einzelne Datei oder ein Ordner sein, und dann kann eine Verschlüsselung erreicht werden.

Was ist zum Schutz der PHP-Codesicherheit zu verwenden? Schraube plus Dose!Nachdem die Verschlüsselung abgeschlossen ist, überprüfen Sie den Quellcode. Sie können feststellen, dass bis auf die ersten paar englischen Zeichen der Rest verstümmelt ist.

Was ist zum Schutz der PHP-Codesicherheit zu verwenden? Schraube plus Dose!Aber wenn ich die Website öffne, läuft PHP normal, als ob es keine Verschlüsselung gäbe. Nach dem Test beträgt die Entschlüsselungsgeschwindigkeit etwa 100 MB pro Sekunde, und der Leistungsverlust für PHP selbst ist sehr gering und beträgt im Allgemeinen weniger als 20 Millisekunden.

Screw Plus verfügt außerdem über eine Funktion, die die Ausführung nicht autorisierter PHP-Dateien verhindert, sodass Hacker auch dann noch angreifbar sind, wenn sie den Code hochladen.

In ähnlicher Weise in

php_screw_plus.h

ändern, den Wert nach STRICT_MODE auf 1 ändern, dann make clean && makephp neu kompilieren und neu starten, dann die zuvor verschlüsselte Website öffnen, die Ausführung ist normal, aber wir laden ein klares hoch Text-PHP-Datei nach Belieben, und das Ergebnis ist leer.

Der Grund dafür ist, dass der unverschlüsselte PHP-Dateiheader keinen Identifikationsschlüssel enthält und die Erweiterung leeren Inhalt zurückgibt. Selbst wenn ein Hacker den Schlüssel erhält und ihn hinzufügt, wird der Inhalt in verstümmelten Code entschlüsselt kann immer noch nicht ausgeführt werden. Mit dem Schutz von Screw Plus wird die Website nicht beschädigt, selbst wenn die gesamte Website heruntergeladen oder bösartiger Code hochgeladen wird.

Empfohlenes Lernen: „PHP-Video-Tutorial

Das obige ist der detaillierte Inhalt vonWas ist zum Schutz der PHP-Codesicherheit zu verwenden? Schraube plus Dose!. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:jianshu.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen