Ich habe mich zuletzt mit dem Thema beschäftigt, wie man WordPress-Plugins vor Kopieren schützen kann. Hintergrund ist, dass ich vor habe, das eine oder andere Plugin zu erstellen (ich bin nun mal Entwickler/Programmierer), die ich auch teilweise verkaufen möchte (so wie es z.b. auch bei OptimizePress der Fall ist).
Hierbei möchte ich natürlich vermeiden, dass es möglich ist, das Plugin einfach zu kopieren und zu nutzen, ohne dass es gekauft – sprich bezahlt wird.
Naheliegend ist natürlich, dass man das per LicenseKey bewerkstelligt. Dieser muss in der Installation eingegeben werden, wird extern überprüft und je nach Ergebnis der Überprüfung wird das Plugin ausgeführt oder es wird ein Hinweis ausgegeben, das die Lizenzierung noch stattfinden muss.
So weit so gut – so üblich, denn genau so wird es auch bei OptimizePress gemacht.
Aber: (natürlich kommt ein aber, denn sonst wäre dieser Artikel doch reichlich unnötig)
Ist das wirklich ein Schutz? Nein, denn wenn man in den Code des Plugins guckt, muss man ja nur die Funktion ausfindig machen, die diese Überprüfung vornimmt und dort das Aussteigen bei nicht erfolgreicher Überprüfung (oder besser die Überprüfung selbst) ausschalten:

Ich sage nicht wo diese Funktion zu finden ist und habe auch ihren Namen unleserlich gemacht, da dies hier ja keine Anleitung zur Umgehung sein soll (wer die Stelle finden will, findet sie auch so – abgesehen davon, ist das auch nicht die einzige Stelle, wo etwas gemacht werden müsste).
In einer Facebook-Gruppe, wo ich das Thema einmal andiskutiert habe, machte mich Sebastian Czypionka auf licenseguardsoft.com aufmerksam. Aber dort wird soweit ich das beurteilen kann das gleiche System verwendet (mit dem Vorteil, dass Lizenz-Schlüssel-Erstellung automatisiert erfolgen kann und mit ClickBank & co. im Verkaufsprozess integrierbar ist).
Eine andere Variante (bzw. ein zusätzlicher Schutz) wäre es, wenn man den PHP-Source-Code verschlüsselt. Dies führt dazu, dass man im Code keine Änderungen vornehmen kann und somit solche Eingriffe wie zuvor beschrieben vermeidet.
Aber es ergeben sich andere Probleme. Damit der verschlüsselte Code läuft, müssen Bibliotheken mit installiert werden, die auch noch unterschiedlich je nach Server-Betriebssystem sind. Da bedeutet also mehr Aufwand für den Support, weil “einfach Hochladen und aktivieren” funktioniert da dann evtl. nicht.
Außerdem wird das Plugin dann auch nicht über WordPress selbst angeboten – was dann auch eine deutlich niedrigere Reichweite bedeutet, da es aber verkauft werden soll vermutlich verschmerzbar ist…
Eine weitere Möglichkeit wäre es, dass wichtige Funktionen ausgelagert sind und nicht innerhalb des Plugins abgearbeitet werden. Hier hat man aber wieder ähnliche Problem wie auch beim Lizenz-Schlüssel – man kann die Kommunikation (für die sich das Plugin berechtigen müsste) manipulieren. Außerdem muss dann der Server, auf den die Anfragen bearbeitet werden groß genug und permanent verfügbar sein – und das dauerhaft, auch wenn man das Plugin selbst gar nicht mehr anbieten möchte…
Fazit:
Die perfekte Lösug habe ich noch nicht gefunden, tendiere aber aktuell zur LizenseKey-Variante ggf. mit zusätzlicher PHP-Code-Verschlüsselung. Mal gucken.

weitersagen - Danke!
weitersagen - Danke!