PHP Code dynamisch verschlüsseln

qsrs

Erfahrenes Mitglied
Hallo,

ich möchte Scripte zum Download bereitstellen. Da es sich z.T. um kostenpflichtige Scripte handelt und der Code nicht öffentlich sein sollte (z.B. auch um Trial-Versionen und eingeschränkte Versionen anzubieten), sollte dieser verschlüsselt werden. Habe dazu auch genügend gefunden, z.B. ionCube, Zend, etc. Das Problem ist jedoch, dass ich die Quelldaten bereits auf dem Server verschlüsseln muss, um sie dann als Download bereitstellen zu können. Ich kann unmöglich jedes Produkt manuell auf dem lokalen PC verschlüsseln und dann hoch laden. Natürlich bieten auch ionCube und Zend diese Möglichkeit an, nur verfüge ich nicht über einen Dedicated Server was bedeutet, dass ich keinen Zugriff auf die php.ini habe und auch nicht die Möglichkeit Programme zu installieren, ist nicht gegeben.

Nun die Frage. Kennt jemand einen PHP-Encoder, welcher sozusagen eine Library anspricht ohne, dass Zugriffe auf den Webserver nötig sind, eine unabhängige Library eben. Diese sollte natürlich zum Decoden genauso einfach sein, indem man eine Library (diese sollte vom Volumen nicht zu groß ausfallen) mitliefern kann.

Primär ist erst einmal die Verschlüsselung wichtig. Schön wären ein Lizenz-System und eine Möglichkeit, Werte dynamisch in die zu encodierenden Dateien zu Schreiben (z.B. Copyright etc.) so wie es beispielsweise ja bereits von ionCube angeboten wird.

Kennt jemand ein derartiges Script oder so eine Lösung? Gibt es das überhaupt?
 
Danke für deine Antwort. Das Script soll natürlich nicht nur auf meinem Server lauffähig sein, sondern auch auf diversen anderen. Und da ich nie voraussehen kann auf was für einem Server das encodierte Script läuft bzw. welche Voraussetzungen der Server erfüllt, ist das wahrscheinlich weniger sinnvoll. Es sollte wenn möglich eine unabhängige Funktion/Library sein, um, was das Encodieren bzw. Decodieren angeht, 100%-ig kompatibel zu bleiben.
 
Du meinst also das Script zum ver- und entschluesseln soll auf ueberall lauffaehig sein oder die Script die Du verschluesselt speichern willst?

Wenn 1., dann wirst Du wohl kaum drumherum kommen die Verschluesselung selbst zu programmieren. Die Funktionen die standardmaessig in PHP enthalten sind (crypt, md5, sha1) bieten keinen Rueckweg, das geht nur bei mcrypt. Base64 waere moeglich, aber dann kannst Du es auch gleich sein lassen, da dies nun wirklich viel zu einfach zu decoden ist.

Wenn 2., dann kannst Du mit mcrypt arbeiten. Das Script wird beim Upload verschluesselt und beim Download wieder entschluesselt. Ganz einfache Geschichte.
 
Hi,

ich will mich mal in diese kleine Diskussion einklinken. Ich denke, dass reptiller das ganze ein bisschen falsch versteht. qsrs verstehe ich so, dass er leglich "compilierten" Code zum Download frei geben will. Verschlüsseln ist evtl. etwas "ungenau" ausgedrückt. Er will schätzungsweise den Code für User unlesbar machen, dennoch soll er von PHP interpretierbar sein, ohne dass er funktionen wie mcrypt aufruft (Dadurch ließe sich der Code für den User wieder entschlüsseln und das ganze hätte nichts gebracht).

Sorry wenn ich mich irre, allerdings habe ich seine problematik so interpretiert... :)

Greatz
 
Naja, das wird er dann wohl auf seinem Rechner vor dem Upload machen muessen.
Denn mir waere nicht bekannt, dass das in PHP machbar ist.
 
qsrs verstehe ich so, dass er leglich "compilierten" Code zum Download frei geben will. Verschlüsseln ist evtl. etwas "ungenau" ausgedrückt. Er will schätzungsweise den Code für User unlesbar machen, dennoch soll er von PHP interpretierbar sein, ohne dass er funktionen wie mcrypt aufruft (Dadurch ließe sich der Code für den User wieder entschlüsseln und das ganze hätte nichts gebracht).
Genau so dachte ich mir das. Zend, ionCube Encoder und ein paar andere machen das auch schon. Der Quellcode wird sogar direkt auf dem Server encodiert. Nur muss das Ganze in PHP eingebunden werden, und da ich keinen Zugriff auf php.ini oder andere administrative Server-Einstellungen habe, fällt das leider auch weg. Allerdings gibt es Hoffnung beim ionCube Encoder. Es ist wohl eine Version für Kunden mit Shared Server Hosting geplant was bedeutet, dass völlig unabhängig von den Serverrechten das Encodieren dynamisch auf dem Server funktionieren wird. Dann wird direkt eine Library verwendet. PHPAudit bietet sogar eine Rundum-Lösung, mit welcher man Projekte lizenzieren kann und dynamisch mit Variablen "füttern" kann um sein Produkt in verschiedenen Lizenz-Varianten anzubieten (z.B. 10/50/100 User, Trial Version oder Einschränkungen im Funktionsbereich).

Hoffe, dass sich da bei ionCube etwas tut. Ansonsten bin ich weiter für Vorschläge und Anregungen sehr dankbar.
 
Zurück