[PHP] Code vor Einblicken schützen

Dieses Thema im Forum "Webentwicklung" wurde erstellt von myth2806, 16. Februar 2010 .

Schlagworte:
  1. 16. Februar 2010
    Code vor Einblicken schützen

    Hey Leute,

    ich suche eine Möglichkeit meinen PHP Code vor Einsicht und Änderung zu schützen um ihn verkaufen zu können. Dabei muss allerdings gewährleistet sein, dass der Code auch noch überall ohne zusätzliche Pakete mit der PHP-Standardinstallation funktioniert.
    Der bcompiler gehört ja leider nicht standardmäßig dazu sonst wäre das die perfekte Lösung.

    Hat jemand eine Idee?

    Grüße
     
  2. 16. Februar 2010
    AW: Code vor Einblicken schützen

    Du könntest den Zend Decoder benutzen, der ist bei so ziemlich allen Webhostern vorinstalliert.
    Aber der Decoder ist schon gecrackt, dennoch eines der "sichersten" Methoden da nicht viele ihn wieder entschlüsseln können. Nur Ioncube wäre nen Stück besser.

    Ansonsten kannst du jeden Obfuscator nehmen die alle gleich viel nix taugen.

    Du sollstest dir aber im klaren sein das es den Code lesen nur schwieriger macht, und jeder der den Code haben will da trotzdem drankommt.

    Daher empfehle ich dir diesen Mist zu lassen und wenn du den Code verkaufst mit einem ordentlichem Lizenztext zu versehen.
    Software die nicht änderbar (Wartbar) ist ist nichts Wert und deine Kunden werden darüber auch nicht glücklich sein. Da es somit für dich und deine Kunden kein Vorteil sondern nur Nachteile bringt lass es einfach. Sollten sie gegen die Lizenz verstoßen kannst du immernoch dagegen klagen.
     
  3. 16. Februar 2010
    AW: Code vor Einblicken schützen

    Die beste (einiz sichere) Lösung ist seine Anwendungen selbst zu hosten und sich diesen Service auch bezahlen zu lassen.
     
  4. 16. Februar 2010
    AW: Code vor Einblicken schützen

    vertreib doch ne passende php-installation gleich mit.

    bcompiler ist die beste lösung, da bcompiler den code nicht verschlüsselt, sondern kompiliert.
    das schützt den code nicht nur vor einblicken, sondern macht dein script dazu noch schneller

    der nachteil: root-/administrator-rechte auf server
    vorteil: code schneller (siehe oben), php-installation muss nur das können was du brauchst (= ebenfalls schneller).

    für versierte nutzer bietest halt zusätzlich ne version ohne php-installation an.
    die wissen dann auch wie man bcompiler installiert.
     
  5. 18. Februar 2010
    AW: Code vor Einblicken schützen

    PECL :: Package :: bcompiler
    php5.3 und php6 wird unterstüzt

    passende builds für windows gibts hier:
    PHP: Release Managers (downloads)

    für apache immer die vc6-versionen nehmen
     
  6. 18. Februar 2010
    AW: Code vor Einblicken schützen

    klasse murdoc^^, du alter rocker!
    gleich mal ne bw rausgeprügelt...

    joa bis jetzt war mir eigentlich auch nur IONCUBE bekannt.. stellt für den coder meist immer nur großartige probleme und zusätzliche arbeit da.

    werde mir den bcompiler mal anschauen

    grüße
     
  7. 18. Februar 2010
    AW: Code vor Einblicken schützen

    danke murdoc, läuft auf win xampp ohne probleme.
    jetzt bin ich natürlich dabei mir das anzueignen.

    meine datei die kompiliert werden soll (example.php)
    PHP:
    <?

    class 
    myClass  {
        public function 
    trace  ( $var ){
            echo 
    $var ;
        }
    }

    ?>
    kompilieren
    PHP:
    <?
    include (
    'example.php' );
    $fp  fopen ( 'echo.php' 'w+' );
    bcompiler_write_header ( $fp );
    bcompiler_write_class ( $fp 'myClass' );
    bcompiler_write_footer ( $fp );
    fclose ( $fp );
    ?>
    die kompilierte datei (echo.php)
    PHP:
    .    bcompiler v0.22s ...    myClass .    .        ..   .   .       .: » ..   .    trace  .    ..   ..   .   var    .  ter    .    trace .   .   .   ?.       .   .   ..   .. .               .   (.           .       .   .               .   >.           .                .. .               .            ÿÿÿÿ   .0   C :/ xampp / htdocs / _php_codes / bcompiler / example . php .    myClass  .. .         ÿÿÿÿ .   .   .   .    varŽoŸ |    ..   .           ..               ..   .            ..   .                     
    nun der aufruf
    PHP:
    <?
    include (
    'echo.php' );
    $x  = new  myClass ();
    $x -> trace ( 'xxx' );
    ?>
    läuft.

    nun meine frage.
    was hat das da in echo.php zu suchen?
    PHP:
    C :/ xampp / htdocs / _php_codes / bcompiler / example . php
    benenne ich example.php um, läuft die sache trotzdem.
    das ist ja auch gut so.
    aber warum wird mir die datei mit pfad eingebunden?
     
  8. 18. Februar 2010
    AW: Code vor Einblicken schützen

    das is für laufzeitfehler. kennst ja "fatal error: bla bla bla in [datei-name] on line xy"

    deswegen kann es auch vorkommen das die magische konstante __FILE__ nicht mehr funktioniert.
    bei __LINE__ und __DIR__ wäre ich auch vorsichtig, die werden nämlich wie in c zur compiletime eingefügt - die ja dank bcompiler wegfällt

    der normale vorgang der php-engine ist ja folgener:
    1. informationen sammeln (dateiname, dateigröße, dateirechte, php.ini einstellungen checken)
    2. datei auslesen und in tokens umwandeln
    3. namespace, class und function-tokens in die jeweiligen tabellen kopieren
    4. opcodes erstellen (eigentlicher compile vorgang)
    5. opcodes von vm (zend-engine) ausführen lassen

    wenn du den code aber via bcompiler speicherst, überspringst du punkt 1 bis 4 (lediglich punkt 3 wird von bcompiler emuliert). d.h die engine hat keine informationen welche datei du gerade ausführst - und deshalb speichert bcompiler einfach den originalen namen in die datei. wie die datei am ende tatsächlich heißt is gal ^^
     
  9. 18. Februar 2010
    AW: Code vor Einblicken schützen

    OK danke schonmal bis dahin!

    Ich muss also davon ausgehen, dass bcompiler dafür doch die beste Lösung zu sein scheint. Jetzt stellt sich mir nur die Frage wie verbreitet dieser ist, das heisst wieviele Hoster dieses Plugin unterstützen.
    Mein Problem ist nämlich, dass mein Code nur ein Teil eines kompletten Homepagesystems ausmacht und deswegen unter allen möglichen Bedingungen zum Einsatz kommt.

    Grüße
     
  10. 18. Februar 2010
    AW: Code vor Einblicken schützen

    selten bis garnicht.

    bcompiler is quasi für endanwender und nicht für entwickler (von webseiten!), daher liefern die meißten fertig-pakete (apt-get oder xampp) das auch ned mit.

    //edit

    ich hab eben ein wenig damit gespielt und meine app ist nun langsamer und liefert hin
    und wieder "Das Dokument enthält keine Daten." - fehler.

    naja, mal sehen, vielleicht läuft das auf meinem server besser.
     
  11. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.