niklaskamenisch: PHP-Code verschlüsseln

hi,

ich suche aktuell eine Möglichkeit, meinen PHP-Code zu verschlüsseln.
Ich habe dabei auch schon einiges angeschaut. Der Support war aber recht schlecht.

Meine Ansprüche:

  • geringe jährliche Kosten oder eben einmalige
  • Projektweite integration muss möglich sein (viele Dateien, wobei einige nicht inbegriffen sein sollten oder auch unverschlüsselt laufen sollten => config, ...)
  • Support für PHP5.3 da ich aber irgendwann umsteige auch schon 5.4!
  • (Wenn man es beachten muss: MySQL(i) ist im Einsatz)
  • Sehr toll wäre es, wenn es auch bei großen Anbietern wie 1&1 und Strato läuft.

Bekannt ist mir unter anderem Zend (etwas teuer mit 600€ pro Jahr, dafür aber fast überall möglich). PHTML Encoder sah preislich gut aus, benötigt aber entweder "enable_dl" auf ON oder eine richtige Installation.

Hat jemand eine Meinung dazu und gute Empfehlungen?

Ich suche keine "minify" dinge, die nur variablen umschreiben und die umbrüche entfernen ;) Das ist kein Schutz, wie ich ihn gerne hätte.

Bin euch auf jeden Fall für alle Stichworte dankbar!

Gruß Niklas

--
Man muss nicht alles wissen, man sollte aber wissen, wo das nicht gewusste zu finden ist.
  1. Lieber niklaskamenisch,

    ich suche aktuell eine Möglichkeit, meinen PHP-Code zu verschlüsseln.

    warum? Arbeitest Du an einem Projekt mit "closed software"?

    Liebe Grüße,

    Felix Riesterer.

    --
    ie:% br:> fl:| va:) ls:[ fo:) rl:| n4:? de:> ss:| ch:? js:) mo:} zu:)
    1. hi,

      Lieber niklaskamenisch,

      ich suche aktuell eine Möglichkeit, meinen PHP-Code zu verschlüsseln.

      warum? Arbeitest Du an einem Projekt mit "closed software"?

      Liebe Grüße,

      Felix Riesterer.

      kann man fast so sagen. Mir ist dabei nicht wichtig, die Profis abzuhalten. Die schreiben das wohl eh schöner und bekommen es immer raus!

      Ich will aber diese "Anfänger" die mit Joomla usw. zurecht kommen (nicht die Profis) abhalten. Mein teuer Entwickeltes System (was einfach locker für anderes eingesetzt werden kann) selber zu verändern. Wenns Verschlüsselt aussieht (nicht minify) dann lassen doch die meisten gleich mal die Finger davon. Dieser "Schutz" reicht mir persönlich aus. (Hätte ich auch gleich ins erste Posting so schreiben können ... sry)

      Gruß Niklas

      --
      Man muss nicht alles wissen, man sollte aber wissen, wo das nicht gewusste zu finden ist.
      1. Lieber niklaskamenisch,

        Ich will aber diese "Anfänger" die mit Joomla usw. zurecht kommen (nicht die Profis) abhalten. Mein teuer Entwickeltes System (was einfach locker für anderes eingesetzt werden kann) selber zu verändern.

        das muss ich jetzt nicht nachvollziehen können, oder? Wenn Du das Teil nicht zum Download anbietest, wie sollte da sonst jemand dran kommen, den Du dann "ein bisschen abschrecken" willst?

        Und wenn Dein System jemand für "etwas anderes" einsetzt, was kümmert's Dich? Du leistest keinen Support und bist für die Entwicklung bereits entlohnt worden!

        Liebe Grüße,

        Felix Riesterer.

        --
        ie:% br:> fl:| va:) ls:[ fo:) rl:| n4:? de:> ss:| ch:? js:) mo:} zu:)
        1. hi,

          richtig ich biete es nicht frei zum download an bzw. überhaupt nicht.
          Es wird an direkte Kunden geliefert bzw. für deren Webseiten eingesetzt.
          Dabei möchte ich die Kunden aber an mich binden.
          Zum einen natürlich durch den Webspace und meine Leistungen. Immer wieder kommt es aber vor, dass die Kunden wen "in der Familie" finden, der da auch meint, es zu können. Die haben meist schon mal was mit Joomla usw. zum laufen bekommen und leicht rumprogrammiert.
          Genau das will ich aber nicht. Die sollen ja zu mir kommen und nicht von irgendwem kostenlos geholfen bekommen. Zumindest nicht für bestimmte Erweiterungen.
          Das Große Risiko ist ja, dass die Leute das eben Erweitern und dann weiter vertreiben können. Das wäre zwar schmeichelhaft, mir entgehen dabei aber eben auch Gelder für die Lizenz. Meine Entwicklungszeit war ja auch nicht grade kurz und das System baut auf Erfahrungen auf aus vorherigen eigenen und fremden Systemen. Das möchte man ja nicht kostenlos bei anderen sehen ...

          Natürlich wurde ich mal dafür gezahlt, das System für den Kunden zu machen. Aber teile davon Finanzieren sich eben nur über viele Kunden! Bei Spezialanpassungen, hab ich kein Problem damit, das der Kunde das unverschlüsselt bekommt. Da zahlt er es ja wirklich zu 100%.

          Aktuell bin ich soweit, dass ich die wichtigsten phps außerhalb des für den Kunden zugänglichen bereichs ablege. Dort wo der Kunde hin kann, funktioniert php nicht. Ist aber eben auch nur so eine "Notlösung".

          Das Ganze baut eben auch auf das Finanzierungskonzept auf. Ich möchte das ganze nicht mit einmalig hohen Kosten machen, sondern jeden Monat Geld bekommen. Und zwar für das ganze System, nicht nur fürs hosting. Das ist in der Branche für die Unternehmen finanziell besser zu handhaben und bietet mir persönlich mehr Sicherheiten. Wäre also doof, wenn jemand das System nach einem Monat auf den Webspace von 1und1 umzieht und dann nicht mehr zahlt. Dann muss ich dem Umständlich hinterher rennen und das ist alles nicht grade schön.

          Wenn ichs verschlüsseln könnte, kann ich eben ein Lizenz-Modul einbauen, das man auch nicht "mal eben" umgehen kann. (Ihr kennt ja die Scripte in denen man nur an der richtigen Stelle "true or" einsetzen muss ;) )

          Geht mir hier aber eh hauptsächlich um das WIE und nicht das WARUM.
          Das WARUM macht auch denke ich kaum unterschiede!

          Gruß Niklas

          --
          Man muss nicht alles wissen, man sollte aber wissen, wo das nicht gewusste zu finden ist.
          1. Tach,

            Geht mir hier aber eh hauptsächlich um das WIE und nicht das WARUM.

            das hat Sven ja beantwortet, es ist technisch nicht möglich. Die einzige Möglichkeit für dich besteht darin, das Hosting selber zu übernehmen, dann kannst du dafür sorgen, dass niemand an den PHP-Server und den Quellcode kommt.

            mfg
            Woodfighter

            1. Tach,

              Geht mir hier aber eh hauptsächlich um das WIE und nicht das WARUM.

              Hi,

              ich kenne das Problem, weil wir es auch haben.
              Unsere Lösung: Der Code läuft ausschließlich auf unserem Server.

              Tec

  2. Moin!

    Ich suche keine "minify" dinge, die nur variablen umschreiben und die umbrüche entfernen ;) Das ist kein Schutz, wie ich ihn gerne hätte.

    Mehr gibts für PHP aber de facto nicht. Auch nicht mit den teureren "Verschlüsselungslösungen" nicht.

    PHP wird ja zu Opcodes geparst, und diese Opcodes dann von der Engine ausgeführt. Mit Verschlüsselung wird zwar der zu kompilierende Source verändert, erzeugt werden aber weiterhin dieselben Opcodes. Und weil man die über vorgesehene Hooks in der PHP-Engine abfangen kann, kann man den ausgeführten Code problemlos genauso gut rekonstruieren, wie bei Nutzung eines Obfuskators, der den Code komplett umformatiert und damit unlesbar macht.

    Die Obfuskatoren haben den Vorteil, dass sie problemlos überall lauffähigen Code erzeugen, der mit jeder Standardinstallation von PHP funktioniert. Alle Verschlüsselung erfordert, dass in das PHP noch der Dekoder integriert werden muss - entweder durch Installation eines Moduls, oder mindestens durch dynamisches Hinzuladen. Beides ist auf Servern definitiv kein Standard, sorgt also für stärkere Probleme beim Einsatz.

    Und weil es für Standard-PHP-Software immer eine kostenfreie, offen lizensierte Alternative gibt, bindet sich keiner diesen Schmerz mit den Dekodern ans Bein. Und für Software, die individuell programmiert wird, auch nicht, denn dafür zahlt man dem Dienstleister/Programmierer schließlich Geld. Und Software, die so wertvoll ist, dass sie von einem größeren Userkreis verwendet werden würde, der aber wiederum so zahlungsunwillig ist, dass ausschließlich Raubkopien eingesetzt werden würden, wird so oder so kopiert werden. Was wiederum das Geschäftsmodell des Herstellers zerstört, wenn er keine andere Möglichkeit für Einnahmen vorgesehen hat.

    In diesem Zusammenhang: Alle Hersteller kommerzieller PHP-Software sind sich dieser Problematik bewusst und bieten aus diesem Grund den größten Teil des Pakets kostenlos mit freier Lizenz an, aber nur mit geringem Support. Firmen, die diese Software einsetzen, benötigen allein aus steuerlichen Gründen Ausgaben als Lizenzkosten (weil es Investitionen sind), und würden den Support ungern ausschließlich als Betriebskosten verbuchen.

    - Sven Rautenberg

    1. hi,

      vielen Dank Sven für deine Meinung. Es spiegelt leider meine Meinung und Vermutung doch wieder.

      In der Tat handelt es sich um ein Agentur-Eigenes CMS das Speziell für eine bestimmte Art Betriebe geschrieben wurde. Viel Entwicklungszeit, die natürlich nicht einfach so ohne weiteres verwendet werden soll.

      Vllt stolpert ja noch jemand über was gutes!

      Der Wunsch, dass es überall läuft ist nicht zwingend. Mir reichts auch, wenns auf meinem Server läuft!

      Gruß Niklas

      --
      Man muss nicht alles wissen, man sollte aber wissen, wo das nicht gewusste zu finden ist.
      1. Der Wunsch, dass es überall läuft ist nicht zwingend. Mir reichts auch, wenns auf meinem Server läuft!

        Wieso willst du Software verschlüsseln, die nirgendwo anders läuft als in deiner eigenen Hütte? Das macht keinen Sinn. Entweder ist dein Server so abgesichert, dass keiner reinkommt bzw. in Ecken rumfuhrwerken kann, wo er nichts zu suchen hat. Oder der Server ist offen wie ein Scheunentor, dann hast du aber wahrlich größere Probleme als Klau von PHP-Code.

        1. Moin!
          Es klingt fuer mich so, als wuerde er Die Software fuer Kunden hosten. Moechte aber nicht, dass die Kunden (jeder Dahergelaufene) sie klauen und umschreiben.  Dass er Profis nicht davon abhalten kann ist ihm wohl bewusst.

          Das ist ein legitimer Wunsch, auch wenn ich persoenlich ihn nicht wirklich nachvollziehen kann. Wenn ich etwas erstelle (Programm, Grafik, ...) und das veroeffentliche ist mir ziemlich egal, was damit passiert, solange nicht jemand mit meiner Arbeit Geld verdient. Wenn ich eine meiner Grafiken (Logos, Banner, ...) veraendert im Web wiederfinde. Muss mir das nicht gefallen, aber wenn jemand mein Banner fuer seine Webseite lieber anders gestaltet hat, als ich mir das vorstelle: soll er doch. Meinetwegen solln sie auch amateurhaft ihren Seitennamen direkt auf das Banner schmieren und es mit Paint vergewaltigen. Ich hoffe halt, dass niemand deren Brachialkunst meiner Arbeit zuschreibt. Das Risiko sollte aber gering sein.

          --
          Signaturen sind blöd!
          1. Hi,

            Es klingt fuer mich so, als wuerde er Die Software fuer Kunden hosten. Moechte aber nicht, dass die Kunden (jeder Dahergelaufene) sie klauen und umschreiben.

            Dann soll er den Kunden halt keinen Zugriff auf die Bereiche, wo das Script liegt, geben …

            MfG ChrisB

            --
            RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
            1. hi,

              das ist aktuell auch mein vorgehen, ich lote aber auch andere Möglichkeiten aus. Nicht jeden Kunden kann man dazu bewegen, vom Massenhoster wegzugehen.
              Zudem hätte ich darüber auch die Möglichkeit, den Kern zu verschlüsseln, den rest aber offen zu halten. Dadurch könnten externe Agenturen das auch einsetzen (interessenten gab es auch schon), wären aber eben durch den Kern gezwungen bestimmtes zu belassen. (z.b. Lizenzmodelle und Updatefunktionen)

              Wenns nicht geht, gehts nicht. Das ist eben "Nice-to-have".
              Ich bin eben nicht so der Freund davon, mein System irgendowo zu sehen, wo es verhunzt eingesetzt wird. Das fällt einfach auch negativ auf den Entwickler zurück, auch wenn ers selber vllt garnicht war.

              Ich bin einfach auch die Java-Programmierung gewohnt, wo ich das ganze eben sauber machen kann. Ich hab mein Hauptprogramm und Module im Unterordner werden dynamisch dazu geladen. Das Hauptprogramm ist dokumentiert und erlaubt eben bestimmte Sachen. Manches kann aber eben nicht überbrückt werden, da mein Programm "Master" ist und zu erst gestartet werden muss. Klar Java ist eben vorkompiliert, was es natürlich von der Grundkonzeption schon ändert. Ich hatte aber eben auf selbige Möglichkeit gehofft bei PHP. Ich kann aber eben auch ohne das leben. (Und da ich ZEND kenne, weiß ich das es geht, nur ist das eben etwas arg teuer mit 600€ pro Jahr)

              Gruß Niklas

              --
              Man muss nicht alles wissen, man sollte aber wissen, wo das nicht gewusste zu finden ist.
              1. Tach,

                Klar Java ist eben vorkompiliert, was es natürlich von der Grundkonzeption schon ändert.

                äh nein, aus Java-Bytecode erzeugen dir diverse Decompiler wieder schön lesbaren Quellcode (im schlimmsten Falle ist der vorher durch nen Obfucscator gegangen und die Variablennamen etc. sind nicht mehr Original), auch hier gilt, eine wirksame Verschlüsselung ist technisch unmöglich.

                mfg
                Woodfighter

                1. Hi!

                  äh nein, aus Java-Bytecode erzeugen dir diverse Decompiler wieder schön lesbaren Quellcode (im schlimmsten Falle ist der vorher durch nen Obfucscator gegangen und die Variablennamen etc. sind nicht mehr Original), auch hier gilt, eine wirksame Verschlüsselung ist technisch unmöglich.

                  Ach. Auch Javacode der dekompiliert wurde ist durchaus veraenderbar. Man muss ich halt etwas anstrengen, wenn alle Variablen und Funktionen nur aus einzelnen Buchstaben oder Aehnlichem bestehen. Ich kenne genug Leute die so programmieren...

                  --
                  Signaturen sind blöd!
                  1. Tach,

                    Ach. Auch Javacode der dekompiliert wurde ist durchaus veraenderbar. Man muss ich halt etwas anstrengen, wenn alle Variablen und Funktionen nur aus einzelnen Buchstaben oder Aehnlichem bestehen. Ich kenne genug Leute die so programmieren...

                    sag ich ja, durch Reflection etc. erhält man normalerweise ja sogar Originalnamen für alles zurück.

                    mfg
                    Woodfighter

                    1. hi,

                      natürlich geht das dort, das wird man wohl bei kaum einer Sprache 100% ausschließen können. Immerhin muss der PC es irgendwann mal berechnen und dann verstehen können.
                      In den meisten Fällen ist es eben eine Herrausforderung das zu knacken.
                      Aber es kostet Zeit und ob sich das dann am ende lohnt?
                      Naja wenns nicht geht, dann sperre ich den Kunden einfach von dem Code aus und passe meine Lizenzen bei eventuellen Mitentwicklern eben darauf an. Gibt ja zum glück noch das Copyright usw.

                      Gruß Niklas

                      --
                      Man muss nicht alles wissen, man sollte aber wissen, wo das nicht gewusste zu finden ist.
                      1. Tach,

                        natürlich geht das dort, das wird man wohl bei kaum einer Sprache 100% ausschließen können. Immerhin muss der PC es irgendwann mal berechnen und dann verstehen können.
                        In den meisten Fällen ist es eben eine Herrausforderung das zu knacken.

                        es gibt einen gewaltigen Unterschied zwischen dem, wie ein dekompliliertes mit einem optimierenden Compiler übersetztes C-Programm im Gegensatz zu einem dekompilierten Java-Programm mit Original-Variablen- und Funktionsnamen aussieht.

                        Gibt ja zum glück noch das Copyright usw.

                        Nicht in diesem Land, das Urheberrecht unterscheidet sich deutlich vom Copyright.

                        mfg
                        Woodfighter

              2. Es klingt fuer mich so, als wuerde er Die Software fuer Kunden hosten. Moechte aber nicht, dass die Kunden (jeder Dahergelaufene) sie klauen und umschreiben.

                Dann soll er den Kunden halt keinen Zugriff auf die Bereiche, wo das Script liegt, geben …

                das ist aktuell auch mein vorgehen, ich lote aber auch andere Möglichkeiten aus. Nicht jeden Kunden kann man dazu bewegen, vom Massenhoster wegzugehen.

                Na, jetzt drehst du dich im Kreis. Erst schreibst du, dir reiche es, wenn der verschlüsselte Code nur auf deinem Server läuft, jetzt geht's doch um Fremdserver.

                Wie dem auch sei, lasse das Produkt weiterhin nur auf deinem Server laufen und vermarkte das Paket als "Cloud" - schon hast du reissenden Absatz, wolkige Versprechungen sind gerade fürchterlich modern …

                1. hi,

                  Es klingt fuer mich so, als wuerde er Die Software fuer Kunden hosten. Moechte aber nicht, dass die Kunden (jeder Dahergelaufene) sie klauen und umschreiben.

                  Dann soll er den Kunden halt keinen Zugriff auf die Bereiche, wo das Script liegt, geben …

                  das ist aktuell auch mein vorgehen, ich lote aber auch andere Möglichkeiten aus. Nicht jeden Kunden kann man dazu bewegen, vom Massenhoster wegzugehen.

                  Na, jetzt drehst du dich im Kreis. Erst schreibst du, dir reiche es, wenn der verschlüsselte Code nur auf deinem Server läuft, jetzt geht's doch um Fremdserver.

                  Das wäre eben der idealzustand. Wenn ichs auch extern nutzen könnte, ohne das die leute viel

                  Wie dem auch sei, lasse das Produkt weiterhin nur auf deinem Server laufen und vermarkte das Paket als "Cloud" - schon hast du reissenden Absatz, wolkige Versprechungen sind gerade fürchterlich modern …

                  Das Argument steht ab sofort auf den Angeboten ;)

                  Gruß Niklas

                  --
                  Man muss nicht alles wissen, man sollte aber wissen, wo das nicht gewusste zu finden ist.
  3. hi,

    vor einigen Jahren zugegeben hat mir ein befreundeter Entwickler von seinen Arbeiten an einer "oxid shop" erzhält, der, so wie ich das kurz recherchiert habe, vermutlich mit "Zend Guard" verschlüsselt war.

    Mittlerweile, wie man bei Google sieht - und so liest sich ja auch Svens Posting - biete aber der "oxid shop" schon Teile frei an.

    Die Verschlüsselung aber war am Anfang auch für den professionellen Entwickler eine Krücke, weil er eben an den Code "nicht ran kam". Da musste er die dann bearbeiten, dass sie ihm Teile auch so zur Verfügung stellten, wenn sie mit bugfixes nicht nachkamen oder so ...;

    mfg

    tami

    1. hi,

      da ich keine Reseller habe (also keine die selber Programmieren, sondern nur das Design machen, programmieren tu ich es), ist das für mich nicht das Problem.

      Wenn wer anderes da mit entwickeln SOLL, dann vertrau ich dem wohl eh schon so weit und kann das auch Vertraglich noch mals regeln. Mir geht es ja wirklich um den Diebstahl durch nachfolgende Dienstleister bzw. "Familienangehörige" die halt mal etwas HTML und PHP gelernt haben.

      Das man es decoden kann, ist nicht das Thema, es muss aber eine Hürde sein, die eben die schlechteren Aufhalten kann. Minify ist ein anfang, aber das kann ich bei Netbeans auch automatisch wieder lesbarer machen ...

      Der SINN und ZWECK ist das eine, das WIE ist hier das was mich eben, auch einfach aus "ich wills wissen", interessiert. Ob ichs dann einsetze ist eben noch offen. Einige Kunden wollen ja nicht mal den FTP-Zugang, da ist das ganze natürlich eh nicht notwendig.

      Gruß Niklas

      --
      Man muss nicht alles wissen, man sollte aber wissen, wo das nicht gewusste zu finden ist.
      1. hi,

        ja, ich vestehe schon. deshalb schrieb ich ja auch, dass das selbst für den entwickler eine _erhebliche_ hürde war. sehe aber auch, dass in deinem fall das preis-leistungs-verhältnis da vermutlich dann nicht stimmt.

        mfg

        tami