Johann: PHP Code schützen

Hallo,

ich habe vor ein Programm (PHP) zu verkaufen. Der betreffende Kunde möchte das Programm mit all seinen Dateien auf seinem Server haben.

Nun stellt sich mir die Frage: Wie kann ich am besten erreichen, das er mit dem Quellcode nichts anfangen kann?

hier http://www.dclp-faq.de/q/q-php-kompilieren.html/ habe ich schon einen guten Überblick über einige Verfahren bekommen. Ein Encoder kommt für den Kunden nicht in Frage, da er dann keine Kontrolle über den Quellcode hat und "bösen Code" vermutet.

POPS, habe ich mal ausprobiert, mußte aber feststellen das danach die Scripte trotz sauberer Programmierung nicht mehr funktionieren.

Klar ist mir, wenn der Kunde "bösen Code" ausschließen will muß er Einsicht in den Quellcode haben, was zur Folge hat das er nicht verschlüsselt sein kann. Vielleicht ist dann ein Ansatz den Quellcode möglichst unleserlich zu machen.

Wie kann ich dazu noch rechtlich verhindern, das der Quellcode vom Kunden für andere Zwecke verwendet wird (evtl. weitervertrieb). Reicht dazu ein Hinweis auf der Auftragsbestätigung? Wenn ja, in welcher Form?

Vielleicht kann mir ja einer von euch helfen.

mfg

Jürgen

  1. Hello,

    unleserlich machen geht zielmlich leicht bei PHP, wenn Du keine Heredoc-Syntax verwendet hast. Du mussßt ja nur alle Kommentare und alle Zeilenumbrüche rausnehmen und dann wieder ein Line-Wrap durchführen. Das sollte allerdings nicht in Darzustellenden Strings stattfinden, sondern möglichst an ehemaligen Umbruchstellen (also merken).

    Ich habe das mal probehalber mit einem längeren Script gemacht. Wer das noch anfasst, muss schon ziemlich gute Gründe dafür haben.

    Früher hat die Auslieferung von Quellcode immer einen separaten Vertrag erfordert mit einer irren Vertragsstrafe und hat richtig viel Geld gekostet.
    Diese Gepflogenheit würde ich auch nicht ändern...

    Liebe Grüße aus http://www.braunschweig.de

    Tom

    --
    Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
    1. Hello,

      unleserlich machen geht zielmlich leicht bei PHP, wenn Du keine Heredoc-Syntax verwendet hast. Du mussßt ja nur alle Kommentare und alle Zeilenumbrüche rausnehmen und dann wieder ein Line-Wrap durchführen. Das sollte allerdings nicht in Darzustellenden Strings stattfinden, sondern möglichst an ehemaligen Umbruchstellen (also merken).

      das lässt sich ziemlich einfach wieder in einen lesbaren Zustand bringen: Alle Umbrüche außerhalb von Strings entfernen und dann an beliebigen, dafür geeigneten Stellen umbrechen. Die Kommentare bekommt man damit natürlich nicht wieder.

      Früher hat die Auslieferung von Quellcode immer einen separaten Vertrag erfordert mit einer irren Vertragsstrafe und hat richtig viel Geld gekostet.

      Da sehe ich auch die einzige Möglichkeit: Ein rechtliches Problem erfordert eine rechtliche Lösung, keine programmiertechnische.

      Schöne Grüße,

      Johannes

      --
      Der folgende Satz ist wahr.
      Der vorhergehende Satz ist gelogen.
      ss:| zu:} ls:[ fo:} de:] va:} ch:) sh:( n4:| rl:( br:< js:| ie:{ fl:( mo:}
      1. Hallo,

        danke erstmal für die schnellen Antowrten.

        Hm scheint plausibel zu sein das auf rechtlichem Wege zu machen. Gibt es da Vordrucke oder Muster, oder kann man das formlos gestalten?
        Muß man extra einen Anwalt hinzuziehen, oder bekommt man das selber hin, vielleicht gibt es Hilfestellung auf einschlägigen Seiten oder Foren?

        mfg

        Johann

        1. Moin!

          Hm scheint plausibel zu sein das auf rechtlichem Wege zu machen. Gibt es da Vordrucke oder Muster, oder kann man das formlos gestalten?

          Ein Vertrag, auch ein Lizenzvertrag, ist immer formlos. Bedenke, dass es sich hier um ein ziviles Rechtsgeschäft handelt, es gilt also zuerst mal (in Deutschland) das BGB. Und das schreibt beispielsweise die Schriftform nur in ganz wenigen Fällen vor (Grundstücksgeschäfte beispielsweise).

          Muß man extra einen Anwalt hinzuziehen, oder bekommt man das selber hin, vielleicht gibt es Hilfestellung auf einschlägigen Seiten oder Foren?

          Ein Anwalt wird gegen entsprechende Bezahlung sicher in der Lage sein, dir ein Schriftstück aufzusetzen, welches nach deinen Wünschen und im rechtlich möglichen Rahmen Regelungen enthält, die deinem Kunden verbieten, gewisse Dinge zu tun.

          Ich bezweifle allerdings nicht, dass du selbst derartige Formulierungen ebenfalls auf ein Stück Papier schreiben kannst. Ein Vertrag muß keinesfalls eine hochgestochene, möglichst unverständlich wirkende und sehr juristische Sprache verwenden (das ist jedenfalls vom Gesetz her nicht vorgeschrieben :) ).

          - Sven Rautenberg

        2. Hello,

          Muß man extra einen Anwalt hinzuziehen, oder bekommt man das selber hin, vielleicht gibt es Hilfestellung auf einschlägigen Seiten oder Foren?

          Im Prinzip nein. in der Praxis ja.

          Insbesondere sollte man nicht zuviel schreiben.
          Ich habe mal ein Angebot erstellt für 100tausende von Mark und den Kunden dann besucht, ob er denn noch Fragen hätte. Den Tag waren zufällig alle Entscheider gleichzeitig da und man meinte, es solle doch ein Vertrag werden. Da war ich ganz schön angeschissen...

          Aber ich habe dann _handschriftlich_ die "fünf W" auf der Kopie des Angebotes notiert und die Leute habes unterschrieben.

          Das war der beste Vertrag, den ich jemals hatte, denn das BGB hat voll gegriffen und nur die wichtigsten Dinge wurden nochmals _handschriftlich_ festgehalten, was sie automatisch in der späteren Bewertung zu vertraglichen Hauptsachen gemacht hat. (siehe-> vertragliche Hauptsachen, Nebensachen).

          Wer also sieben Tonnen Klauseln schreibt, muss auch damit rechnen, dass er später wie ein Jurist behandelt wird, und 14 Tonnen Gegenhaltungen kassiert...

          Liebe Grüße aus http://www.braunschweig.de

          Tom

          --
          Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
  2. Moin!

    hier http://www.dclp-faq.de/q/q-php-kompilieren.html/ habe ich schon einen guten Überblick über einige Verfahren bekommen. Ein Encoder kommt für den Kunden nicht in Frage, da er dann keine Kontrolle über den Quellcode hat und "bösen Code" vermutet.

    Benutzt dein Kunde Windows? Hat er davon den Quellcode? Ist Windows angesichts der vielen Sicherheitslücken nicht auch durch und durch böse?

    Quellcode haben und damit was sinnvolles anfangen können sind zweierlei Dinge. Den Quellcode mitzuliefern ist für kleine Firmen in meinen Augen sogar ein Verkaufsargument, denn nach dem Platzen der Internet-Blase standen sicherlich viele Kunden nicht nur vor den Trümmern der beauftragten Agenturen, sondern hatten auch absolut nichts in der Hand von dem System, welches online die Webpräsenz darstellte. Also viel Geld rausgehauen, aber keine Weiterentwicklungsmöglichkeit. Das sieht mit Quellcode natürlich gleich ganz anders aus.

    Klar ist mir, wenn der Kunde "bösen Code" ausschließen will muß er Einsicht in den Quellcode haben, was zur Folge hat das er nicht verschlüsselt sein kann. Vielleicht ist dann ein Ansatz den Quellcode möglichst unleserlich zu machen.

    Es gibt nur zwei Möglichkeiten: Quellcode mitliefern, oder nicht. "Ein bischen verschleiern" hilft dir im Zweifel nicht weiter.

    Wie kann ich dazu noch rechtlich verhindern, das der Quellcode vom Kunden für andere Zwecke verwendet wird (evtl. weitervertrieb). Reicht dazu ein Hinweis auf der Auftragsbestätigung? Wenn ja, in welcher Form?

    Der Kunde braucht für den Weitervertrieb den Quellcode gar nicht! Denn auch das verschlüsselte Skript funktioniert ja schließlich - und sofern du da nicht eine Serverabfrage mit irgendeinem Registriercode einbaust, wird er auch auf allen anderen Servern funktionieren.

    Insofern ist dein Interesse an der Nicht-Weiterverbreitung der Software durch deinen Kunden sowieso ein ganz anderes Gebiet, als die Auswertung des Quellcodes.

    Dir bleibt in dieser Hinsicht lediglich die entsprechende Gestaltung des Lizenzvertrages.

    - Sven Rautenberg