Lizenzierung eines PHP-Programms

Hi allerseits,

ich mache mir seit einiger Zeit Gedanken darüber, wie man ein PHP-Programm lizenzieren könnte. Damit meine ich ein Verfahren, dass eine Seriennummer oder ähnliches vorsieht, welche ein Kunde erhält und benötigt, um eine Software nutzen zu können.

Letztendlich müssten ja im Quellcode Sinngemäß solche Abfragen drinstehen:

if ($lizenz == „alleserlaubt“) {

usw. Das lässt sich nun natürlich mit ein wenig PHP-Kenntnissen leicht umgehen, wodurch der Sinn der Seriennummer ziemlich abgeschwächt wird.

Eigentlich recht interessant finde ich die Software von Zend oder Ioncube, welche den Code verschlüsselt, und teilweise sogar ein Lizenzmanagement mitbringt. Nur zum Ausführen eines auf diese Art verschlüsselten Programms müssen auf dem Webserver Erweiterungen installiert sein, die man grade auf Shared-Host-Systemen nicht voraussetzen kann.

Habt ihr bessere Ideen in diesem Zusammenhang?

Gruß und Dank

Henrik

also was ich mal gesehen hab ist ein Script, das seine eigenen checksummen geprüft hat und das an verschiedenen stellen…
Wenn man was geändert hat, war die Summe eine andere und das Script hat gemeckert…

War schon mal schwer da dann die Funktionen zu verstehen :wink:

Aber warum auch so kompliziert? Wenn Du einen Teil der Funktionen in ein separates File schreibst und das bei lizenzierung überschreiben lässt bist Du relativ sicher…
Natürlich kann so dann immernoch eine lauffähige Version entstehen…

Eine dritte Methode, die mir einfällt wäre, dass Du einen eigenen Verschlüsselungsalgorythmus programierst und dann code damit verschlüsselst und das als Lizenzfile verwendest…
Im code wird das dann wieder entschlüsselt und per eval ausgeführt um die Sicherungen zu umgehen…

Naja - alles nicht das beste - aber das ist halt generell das Problem an unkompiliertem Code…

Grundsätzlich kann man nicht verhindern, dass an PHP-Scripts nach Lust und Laune verändert wird, das ist ja gerade das Schöne. Du kannst es dem ‚Hacker‘ nur schwerer machen. Als erstes solltest du die Funktion zur Prüfung der Seriennummer in Stückchen zerlegen und über das ganze Projekt in mehrere Scripts verteilen. Weiterhin kannst du irreführende Kommentare und wirkungslose Anweisungen, Funktionen und Variablenzuweisungen verwenden. Als zweites solltest du überprüfen, ob das Script geändert wurde. Dabei gilt das gleiche wie unter erstens.

Johannes Matschke

Eigentlich recht interessant finde ich die Software von Zend
oder Ioncube, welche den Code verschlüsselt, und teilweise
sogar ein Lizenzmanagement mitbringt. Nur zum Ausführen eines
auf diese Art verschlüsselten Programms müssen auf dem
Webserver Erweiterungen installiert sein, die man grade auf
Shared-Host-Systemen nicht voraussetzen kann.

Habt ihr bessere Ideen in diesem Zusammenhang?

Gruß und Dank

Henrik

Das Script selber hosten und dann vermarkten. Kann jeder nutzen und kommt doch keienr ran :smile:

Das Script selber hosten und dann vermarkten. Kann jeder
nutzen und kommt doch keienr ran :smile:

Bei größeren Sachen kann man das machen, meine derzeitigen Pläne bzw. Ideen gehen eher in Richtung „kleine Tools“. Und die Ideen, die ich bisher hatte, müsste sich der Kunde schon selbst installieren :wink:

Hmm, also ein obfuscator (oder wie das heißt). Wäre sicher besser als nix :wink:

Eigentlich müsste man doch aber auch eine Verschlüsselung erreichen können, die der von PGP ähnelt… also mit Public und Secret Key. Darüber muss ich mir mal Gedanken machen.

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Aber warum auch so kompliziert? Wenn Du einen Teil der
Funktionen in ein separates File schreibst und das bei
lizenzierung überschreiben lässt bist Du relativ sicher…
Natürlich kann so dann immernoch eine lauffähige Version
entstehen…

das versteh ich nu grade nicht. Der Lizenzierungsteil müsste ja auch irgendwo in dem Script liegen und wäre dadurch angreifbar hmmm

nein…
wenn Du alle „kostenfunktionen“ in das Lizenzfile schreibst, dann nicht…
Der Kunde denkt, dass er einen Lizenzschlüssel als File bekommt - in wahrheit bekommt er aber verschlüsselten php code…
Er kann das dann nur nach der zahlung weiterverbreiten - das ist die einzige Angreifbarkeit dabei…

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Du kannst für jeden Kunden eine Extraseite Hosten, wobei er im Script überprüft, ob es ihn gibt oder nicht!

Du kannst für jeden Kunden eine Extraseite Hosten, wobei er im
Script überprüft, ob es ihn gibt oder nicht!

du meinst in dem Sinne, dass das Script sich mit einem (meinem) Server verwindet und „fragt“ ob es arbeiten darf?

Was nützt dir eigentlich die Lizensierung? Wenn einer den Code sammt Lizenzschlüssel weitergibt, dann nützt dir der Schlüssel gar nichts. Und ohne Schlüssel brauchst du den Code ja nicht zu verteilen.

Was nützt dir eigentlich die Lizensierung? Wenn einer den Code
sammt Lizenzschlüssel weitergibt, dann nützt dir der Schlüssel
gar nichts. Und ohne Schlüssel brauchst du den Code ja nicht
zu verteilen.

Stimmt nicht ganz so: Wenn das Lizenzverfahren nicht problemlos auszuhebeln geht, kann der Code immer nur mit dem „eigenen“ Schlüssel weitergegeben werden. Unter Umständen ist das dann leicht nachvollziehbar, z.B. wenn eine Supportanfrage gestellt wird oder so.

Klar, verhindern kann ich die Weitergabe damit auch nicht. Aber ich gehe davon aus, dass die Hemmschwelle höher angesetzt wird.

Ich möchte halt nur nicht, dass sich jemand für 10 Euro das Script kauft und dann lustig weiterkopiert :wink:

Aber mal sehen… vielleicht ists einfach einfacher, das ganze ohne Lizenzierung zu machen.

Interessant sind natürlich auch Verfahren, die bei Installation auf einen Fremdserver zugreifen und sich dadurch „freischalten“. Nur das wollte ich eigentlich nicht machen, da ja nicht jeder seinen Server im Internet stehen hat. Zudem müsste auch da der Code wieder verschlüsselt sein.

Tja, und wenn ich Zend oder Ioncube verwende (letzteres habe ich mir schonmal angeschaut) ists zwar alles schön einfach, nur ich schließe damit einige Kunden aus (nämlich die, die die passende Extension nicht installiert haben).

Gruß Henrik

Hab irgendwann man einen PHP Encoder entdeckt.
Dabei wird der Code verschlüsselt abgelegt und erst beim ausführen entpackt.
Details kannst hier lesen:
http://www.nusphere.com/products/nucoder.htm?gclid=C…