Hallo Roland,
wie Du schon gesagt hast gibt es keinen 100% Schutz. Um den bestmöglichen Schutz erzielen zu können muss man schon ein wenig Zeit und Know-how investieren. In Deinem Fall wären z.B. die folgenden zwei Strategien möglich:
1) Jedes ausgelieferte Skript wird mit einer einmaligen Signatur (Wasserzeichen) versehen. Dies bietet zwar keinen Schutz vor dem direkten Kopieren, aber in Anbetracht der Tatsache, dass eine Kopie zurückverfolgt werden kann, schreckt das schon einige Leute ab. Implementieren könnte man den Schutz z.B. in der Form, dass Du die Signatur in eine Konstante oder Variable schreibst.
2) Eine andere Möglichkeit wäre z.B. zu überprüfen ob sich bestimmte Informationen in einer Textdatei befinden. Die Information könnte z.B. der Kundenname und eine Registriernummer sein. Das Überprüfen wäre folgendermaßen möglich:
I) Ist die Datei nicht vorhanden, bricht Dein Skript einfach ab oder es ist nur der Demomode möglich.
II) Ist die Datei vorhanden wird der Kundenname und die Regnummer gelesen. Der Kundenname wird z.B. in irgendeiner Art auf dem Bildschirm angezeigt. Das Anzeigen soll als Abschreckung dienen um die Textdatei nicht einfach so weiterzugeben. Anhand der Regnummer wird überprüft ob der Benutzer berechtigt ist, dass Skript zu benutzen. Um sich vor möglich Änderungen in der Textdatei schützen zu können, sollte der Kundennamen und die Regnummer zum einen nicht im Klartext dastehen, zum anderen muss die Textdatei mittels einer Checksumme auf Richtigkeit geprüft werden. Die Optimale Lösung anstelle der Checksumme wäre natürlich das Verschlüsseln mittels eines asymmeterischen Verschlüsselungsverfahrens. Bei dieser Art der Verschlüsselung hat man zwei Keys, einen Privaten und einen Öffentlichen. Der Private dient dazu um die Textdatei zu verschlüsseln und der Öffentliche wird zum Entschlüsseln verwendet. Der Öffentliche darf wie der Name schon sagt jedem bekannt sein, denn ohne den privaten Key ist es nicht möglich Änderungen in der Textdatei wieder zu verschlüsseln.
Wenn Du einen einfachen und schnellen Schutz suchst, würde ich Dir die erste Variante empfehlen. Wenn es etwas sicherer sein sollte kommst Du um die zweite Variante nicht herum. Zu beachten wäre jedoch noch. Generell verhält es sich bei Skriptsprachen immer so, dass der Code im Klartext vorliegt. Dies bietet die Möglichkeit, dass der Code ohne Schwierigkeiten analysiert und Codeteile ganz einfach per Copy&Paste in eigene Projekte kopiert und verwendet werden kann. Um sich hiergegen schützen zu können muss man schon ein wenig mehr Aufwand treiben, Stichwort Codeverschleierung. Hierbei wird Code hinzugefügt, der eigentlich nichts macht als nur zu verwirren. Natürlich bietet die Codeverschleierung auch keinen 100% Schutz, aber jemand der einfach nur mal so den Code anschauen/untersuchen möchte wird sich schwer tun.
Gruß
Michael
|