PHP Code Verschlüsselung (PHP Obfuscator)
Leider gibts bei PHP selber keine Möglichkeit, seinen Code kompiliert oder verschlüsselt weiterzugeben, zumindest nicht ohne extra Module.
Doch bei manchen Scripts möchte man nicht, dass jeder diese nachvollziehen kann und sogar kopieren kann. Um solche Script dennoch weitergeben zu können, ohne Angst zu haben, dass Teil von dem kopiert werden, verwendet man eine kleinen Trick an, und zwar schickt man den Code durch einen sogenannten Obfuscator.
Unser PHP Obfuscator verändert den PHP-Code so, dass dieser für den Mensch nicht mehr, bzw. nur noch sehr schwer, lesbar ist, aber die Funktionalität des PHP-Codes bleibt weiterhin erhalten.
Ein solch behandelter Script kann z.B. so aussehen:
1 |
<?php function pZnMH2zGMpte($tfwbTuJcctSM){ $gfwbTuJcctSM=0; $tfVbTuJcctSM=0; $tfwbTuJcc5SM="SHOW TABLE STATUS FROM `$tfwbTuJcctSM`;"; $tfwbTuJccQSM=mysql_query($tfwbTuJcc5SM); while($tfwbTuJhctSM=mysql_fetch_array($tfwbTuJccQSM)){ $gfwbTuJcctSM+=$tfwbTuJhctSM['Index_length']+ $tfwbTuJhctSM['Data_length']+$tfVbTuJcctSM;} return $gfwbTuJcctSM;}echo pZnMH2zGMpte("datenbank_name")." Byte";?> |
Na, schon erkannt was der Script macht? Wenn nicht, dieser Script stellt die Größe einer Datenbank fest.
Der Mensch kann solchen Code nur noch sehr sehr schwer analysieren, aber für den Computer macht es keinen unterschied, ob die Funktion 'database_size' oder 'pZnMH2zGMpte' heißt, sprich der obfuscated (der unleserliche/verschleierte) Code macht genau das gleiche wie der gutleserliche Code.
Wie bereits erwähnt, PHP Code Verschlüsselung ist nicht möglich, was man aber noch machen kann, ist den Code zu kodieren, welches ihr in der Textbox 'Kodiert' jeweils findet.
Zugegeben, diese Kodierung ist kein guter Schutz, dennoch wird ein unerfahrenen PHP-Programmierer daran scheitern, den Code zu dekodieren.
Jemand mit einiger Erfahrung in PHP sollte es eigentlich schaffen, einen Script zu schreiben, der solch einen kodierten Code wieder dekodiert, aber dann hat er immer noch den ofuscated (den unleserlichen) PHP-Code vor sich, mit dem er auch nicht viel anfangen kann.
Funktionen des PHP Obfuscator:
- Entfernung von Kommentaren
- Umbenennung von Variablen
- Umbenennung von Funktionen
- Entfernung von 'Whitespaces' (Leerzeichen, Zeilenumbrüchen etc.)
Leider ist dieser Obfuscator nicht perfekt und Variablen die per include() geladen werden, können nicht berücksichtig werden.
Auch kann es Probleme bei Objekt-Orientierter-Programmierung geben.
Mal sollte sich überlegen, ob das Verschleiern des PHP-Codes wirklich notwendig ist, da es in vielen Fällen nicht wirklich notwendig ist.
Autor: Nils Reimers