Markus: Quelltext richtig verschlüsseln

Hallo!

Ich möchte den Quelltext meiner Homepage irgendwie verschlüsseln oder codieren.

Das Problem ist nur, wenn ich den Quelltext bei diversen Anbietern von Quelltextverschlüsselung verschlüssle, gibt es bei den meisten eine Option zum Entschlüsseln.
Also nützt mir das nicht viel.

Kennt jemand oder Gibt es eine Möglichkeit den Quelltext so zu verschlüsseln, dass er nicht mehr oder nur schwer wieder entschlüsselt werden kann.

Liebe Grüße,
Markus

  1. Moin!

    Ich möchte den Quelltext meiner Homepage irgendwie verschlüsseln oder codieren.

    Das Problem ist nur, wenn ich den Quelltext bei diversen Anbietern von Quelltextverschlüsselung verschlüssle, gibt es bei den meisten eine Option zum Entschlüsseln.
    Also nützt mir das nicht viel.

    Hattest du vor, dass der Browser weiterhin die Seite anzeigt, deren Quelltext verschlüsselt werden soll?

    - Sven Rautenberg

    --
    "Love your nation - respect the others."
    1. Hallo!

      Hattest du vor, dass der Browser weiterhin die Seite anzeigt, deren Quelltext verschlüsselt werden soll?

      Ja, angezeigt sollte die Seite schon noch werden.

      Liebe Grüße
      Markus

      1. Tach,

        Ja, angezeigt sollte die Seite schon noch werden.

        dann _muß_ der Quelltext auch sichtbar bleiben.

        mfg
        Woodfighter

      2. Moin!

        Hattest du vor, dass der Browser weiterhin die Seite anzeigt, deren Quelltext verschlüsselt werden soll?

        Ja, angezeigt sollte die Seite schon noch werden.

        Dann muß der Verschlüsselungsmechanismus alles mitliefern, damit der Browser die Seite entschlüsseln kann, um sie darzustellen. Somit erhält auch derjenige, der die Seite nicht sehen soll, alles mitgeteilt, um die Seite sehen zu können - auch den Quelltext. Alle derartigen Mechanismen benutzen Javascript dafür - und den Javascript-Code kann man zur Not manuell analysieren und dekodieren, bzw. passend manipulieren, damit eventuelle "Schutzmechanismen" nicht wirksam werden.

        Oder man setzt direkt am Ende des Mechanismus an und greift im Browser den entschlüsselten Quelltext direkt wieder per Javascript ab.

        Der einzige Effekt ist, dass deine Seite in Suchmaschinen nicht gefunden wird, weil Webspider die Seite den Javascript-Code nicht ausführen und deshalb keinen indizierbaren Inhalt finden.

        Und Webbrowser ohne Javascript sehen natürlich auch nichts.

        Unter dem Strich ist der Aufwand für die immer rückgängig machbare Verschlüsselung also komplett sinnlos. Sie hat nur Nachteile, keinerlei Vorteile.

        - Sven Rautenberg

        --
        "Love your nation - respect the others."
        1. Hallo Sven,

          Oder man setzt direkt am Ende des Mechanismus an und greift im Browser den entschlüsselten Quelltext direkt wieder per Javascript ab.

          Oder man bastelt den resultierenden DOM-Baum halt einfach wieder zu HTML-Code zusammen.

          Jonathan

          1. Hallo Jonathan,

            Oder man bastelt den resultierenden DOM-Baum halt einfach wieder zu HTML-Code zusammen.

            der Firefox hat im Kontextmenü die Funktion "Auswahl-Quelltext anzeigen". Da sieht man auch den per JS erzeugten Quelltext.

            @Markus
            Es gibt nur einen wirksamen Quelltextschutz: Seite(n) nicht online stellen. Du kannst es den "Dieben" allenfalls etwas schwerer machen, indem du den Quelltext als Einzeiler auslieferst.

            Gruß, Jürgen

            1. Du kannst es den "Dieben" allenfalls etwas schwerer machen, indem du den Quelltext als Einzeiler auslieferst.

              hm - wie wärs denn mit nem frame-gemetzel?  :D

              würde mich jedenfalls tierisch nerven, wenn ich jeden quadratzentimeter einer webseite einzeln rauspicken müsste.

              würde mich aber noch mehr nerven sowas überhaupt machen zu müssen ^^

              grüße,

              sph

          2. Yerf!

            Oder man bastelt den resultierenden DOM-Baum halt einfach wieder zu HTML-Code zusammen.

            alert(document.getElementsByTagName("html")[0].innerHTML);

            ;-)

            Gruß,

            Harlequin

            --
            <!--[if IE]>This page is best viewed with a webbrowser. Get one today!<![endif]-->
  2. Kennt jemand oder Gibt es eine Möglichkeit den Quelltext so zu verschlüsseln, dass er nicht mehr […] wieder entschlüsselt werden kann.

    md5 leistet diese Aufgabe hervorragend.

    1. md5 leistet diese Aufgabe hervorragend.

      der sinn einer verschlüsselung ist, dass sie weiter entschlusselt werden kann - auch wenn ich dein spässchen verstanden habe, md5 verschlüsselt nicht

      1. Hallo suit,

        der sinn einer verschlüsselung ist, dass sie weiter entschlusselt werden kann - auch wenn ich dein spässchen verstanden habe, md5 verschlüsselt nicht

        Nur wollte Markus eben ne Verschlüsselung, die _nicht_ wieder entschlüsselt werden kann. ;-)

        Jonathan

        1. Nur wollte Markus eben ne Verschlüsselung, die _nicht_ wieder entschlüsselt werden kann. ;-)

          die ist in jedem kontext unmöglich - das ist wie "info auf ein stück papier schreiben und das ding dann essen" :D an der farbe des ausscheidungsproduktes kann man auch den text der nachricht nicht mehr rekonstruieren ;)

  3. @@Markus:

    Ich möchte den Quelltext meiner Homepage irgendwie verschlüsseln oder codieren.

    http://community.de.selfhtml.org/zitatesammlung/zitat1109

    Ansonsten findest du oben auf der Forum-Startseite den Hinweis „Lies unsere FAQ, dort sind häufig gestellte Fragen direkt beantwortet.“ Warum hast du diesen ignoriert?

    Live long and prosper,
    Gunnar

    --
    „Das Internet ist ein großer Misthaufen, in dem man allerdings auch kleine Schätze und Perlen finden kann.“ (Joseph Weizenbaum)
    1. Hallo Gunnar!

      Aber wie soll das gehen? Ist das nicht ein Passwortschutz für Dateien und Ordner?

      Wird dann meine Seite überhaupt noch angezeigt wenn ich das mit .htaccess mache?

      Ich möchte ja lediglich nur den Quelltext verschlüsseln, codieren oder andren unzugänlich machen.

      Liebe Grüße
      Markus

      1. Du hast die winkenden Zaunpfähle offenbar noch nicht bemerkt:

        Ich möchte ja lediglich nur den Quelltext verschlüsseln, codieren oder andren unzugänlich machen.

        Wie glaubst du, soll ein Browser eine HTML-Seite darstellen, die unzugänglich ist? Der Browser benutzt den Quelltext zur Darstellung, wenn er unzugänglich, verschüsselt, versperrt und verrammelt ist, kann er ihn nicht nutzen.

        Kurzum: Es geht nicht. Und erlaube mir die Anmerkung, dass bei den meisten Leuten, die diesen Wunsch hegen, keine Techniken im Quellcode stecken, die schützenswert wären.

        1. Kurzum: Es geht nicht. Und erlaube mir die Anmerkung, dass bei den meisten Leuten, die diesen Wunsch hegen, keine Techniken im Quellcode stecken, die schützenswert wären.

          Was wohl daran liegt, dass Leute die wirklich interessantes Zeug machen, auch wissen wie das so mit den Browsern funktioniert.

          Eigentlich kann man es auf 2 ganz simple Feststellungen runterbrechen:

          Wenn Du HTML/Javascript unzugaenglich machen willst, ist es das automatisch nicht wert.

          Wenn Du interessanten Code schrieben kannst, weisst Du auch, dass sowas nicht geht.

          1. Hallo!

            Dazu gibt's übrigens auch ein nettes Zitat:

            | Don't worry about people stealing your ideas. If your ideas are any good,
            | you'll have to ram them down people's throats.
                                                                     - Howard Aiken

            Viele Grüße,
            Christian

  4. Hallo,

    lade deine Seiten in den Browser, mache einen Screenshot, und bau die Seiten so das auf dem Liveserver nur noch die Grafik ausgeliefert wird ;-)
    Dauert halt ein bisschen mit einer etwas langsameren Verbindung 8[
    Aber Quelltext ist dann nicht mehr viel da - ha -ha

    Gruß Rainer

  5. Hi,

    Ich möchte den Quelltext meiner Homepage irgendwie verschlüsseln oder codieren.

    Was meinst du mit "Quelltext"? Den HTML-Output? Da kannst du höchstens den alles "unleserlich" machen oder Kommentare entfernen. Mit entsprechenden Tools kann man das aber wieder rückgängig machen.

    Wenn du den Sourcecode, z.B. PHP verschlüsseln möchtest, brauchst du ein professionelles Tool. Diese sind häufig ab 200€ zu haben.

    Gruß
    Tom123

    1. @@Tom123:

      Was meinst du mit "Quelltext"? Den HTML-Output? Da kannst du höchstens den alles "unleserlich" machen oder Kommentare entfernen. Mit entsprechenden Tools kann man das aber wieder rückgängig machen.

      Entfernte Kommentare also wieder einfügen?

      Wenn du den Sourcecode, z.B. PHP verschlüsseln möchtest, brauchst du ein professionelles Tool. Diese sind häufig ab 200€ zu haben.

      Äh, PHP verschlüsseln? Wieviel PHP-Code genau wird denn vom Server zum Client geschickt?

      Live long and prosper,
      Gunnar

      --
      „Das Internet ist ein großer Misthaufen, in dem man allerdings auch kleine Schätze und Perlen finden kann.“ (Joseph Weizenbaum)
      1. Yerf!

        Wenn du den Sourcecode, z.B. PHP verschlüsseln möchtest, brauchst du ein professionelles Tool. Diese sind häufig ab 200€ zu haben.

        Äh, PHP verschlüsseln? Wieviel PHP-Code genau wird denn vom Server zum Client geschickt?

        100%

        ...zumindest wenn es um den Download der Applikation zum Einrichten auf einem eigenen Server geht. ;-)

        Gruß,

        Harlequin

        --
        <!--[if IE]>This page is best viewed with a webbrowser. Get one today!<![endif]-->
      2. Hi Gunnar,

        Äh, PHP verschlüsseln? Wieviel PHP-Code genau wird denn vom Server zum Client geschickt?

        Tom meinte vermutlich so etwas wie Zend Guard, damit lässt sich der Source-Code von PHP-Applikationen verschlüsseln. Zur Interpretation des verschlüsselten Codes wird dann ein spezielles Server-Modul benötigt. Mittels Reverse-Engineering lassen sich aber auch hier aus dem verschlüsselten Code Teile wiederherstellen.

        @Markus: Nein, was ich grade sagte hat nichts mit HTML zu tun - für HTML gibt es keine Möglichkeit ;-)

        Viele Grüße,
          ~ Dennis.

        1. Hallo,

          Tom meinte vermutlich so etwas wie Zend Guard, damit lässt sich der Source-Code von PHP-Applikationen verschlüsseln.

          Ist das jetzt eher Signierung/Zertifizierung oder Verschlüsselung mit wirklichen Schlüsseln?

          In vielen Fällen ist das sehr sinnvoll, aber dann geht's wohl primär um Authentifizierung als um "Quelltext verbergen"?

          Zur Interpretation des verschlüsselten Codes wird dann ein spezielles Server-Modul benötigt. Mittels Reverse-Engineering lassen sich aber auch hier aus dem verschlüsselten Code Teile wiederherstellen.

          Hört sich wie so eine Art Byte-Compiler an?

          Mathias

    2. Hallo,

      Wenn du den Sourcecode, z.B. PHP verschlüsseln möchtest, brauchst du ein professionelles Tool. Diese sind häufig ab 200€ zu haben.

      Äh, aber die bringen ihre eigene Entschlüsselung doch auch mit?

      (Scheint ja ein lukratives Geschäft zu sein, vielleicht sollte ich da einsteigen.)

      Mathias

    3. Hallo,

      Wenn du den Sourcecode, z.B. PHP verschlüsseln möchtest, brauchst du ein professionelles Tool. Diese sind häufig ab 200€ zu haben.

      Sorry, aber die verschlüsseln auch nicht. Was hier im Thread für Vorstellungen von Verschlüsselung aufgekommen sind, ist irgendwie extrem abenteuerlich.

      Es gibt zwei Arten von Tools für PHP, die den Code verbergen:

      * Tools, die obfuscating betreiben: Diese benennen Bezeichner in ganz
         komische Namen um, ändern die Struktur des Codes ohne die Funktionalität
         zu ändern, so dass ein normaler Mensch es schwer hat, den Code noch zu
         lesen. Nützt aber nur bei kompletten Scripten etwas - auf Klassen-
         sammlungen angewendet ist der Nutzen nämlich extrem gering, da
         öffentliche Klasseneigenschaften und -Methoden natürlich weiterhin so
         heißen müssen, wie sie heißen - und somit ein Großteil des Effekts
         verloren geht. Außerdem gibt es inzwischen mit Sicherheit Tools, mit
         denen man sowas rückgängig machen kann - man muss ja nur aufspüren, wo
         ein bestimmter Bezeichner überall verwendet wird um zu sehen, wofür er in
         etwa gut ist, und kann ihn dann global umbennnen in etwas sinnvolles. Ist
         zwar etwas Arbeit, aber mit vertretbaren Aufwand kommt man wieder an
         lesbaren Code. Nützt also nicht wirklich etwas.

      * Tools, die nur Opcodes speichern: Dazu muss man wissen, wie PHP Dateien
         denn tatsächlich verarbeitet. PHP hat nämlich 2 Durchgänge, um Dateien
         auszuführen: Zuerst werden sie "kompiliert", d.h. in sogenannte "Opcodes"
         gewandelt, danach werden die Opcodes ausgeführt. Im folgenden mal ein
         Beispiel, wie so etwas aussieht:

      Betrachten wir folgende PHP-Datei:

      <?php  
        
      function ersetzeEuro ($arg) {  
        return str_replace ('€', 'EUR', $arg);  
      }  
        
      $betraege = array ('4 €', '5 €', '6 €');  
      $ausgabe = array_map ('ersetzeEuro', $betraege);  
      var_dump ($ausgabe);  
        
      ?>
      

      Mit geeigneten Extensions kann man sich nun ansehen, welche Opcodes PHP aus dieser Datei generiert:

      Branch analysis from position: 0
      filename:       - schnipp -
      function name:  (null)
      number of ops:  12
      compiled vars:  !0 = $betraege, !1 = $ausgabe
      line     #  op                           fetch          ext  return  operands
      -------------------------------------------------------------------------------
         3     0  NOP
         7     1  INIT_ARRAY                                       ~0      '4 €'
               2  ADD_ARRAY_ELEMENT                                ~0      '5 €'
               3  ADD_ARRAY_ELEMENT                                ~0      '6 €'
               4  ASSIGN                                                   !0, ~0
         8     5  SEND_VAL                                                 'ersetzeEuro'
               6  SEND_VAR                                                 !0
               7  DO_FCALL                                      2          'array_map'
               8  ASSIGN                                                   !1, $2
         9     9  SEND_VAR                                                 !1
              10  DO_FCALL                                      1          'var_dump'
        12    11  RETURN                                                   1

      Function ersetzeeuro%00:
      Branch analysis from position: 0
      Return found
      filename:       - schnipp -
      function name:  ersetzeEuro
      number of ops:  7
      compiled vars:  !0 = $arg
      line     #  op                           fetch          ext  return  operands
      -------------------------------------------------------------------------------
         3     0  RECV                                                     1
         4     1  SEND_VAL                                                 '€'
               2  SEND_VAL                                                 'EUR'
               3  SEND_VAR                                                 !0
               4  DO_FCALL                                      3          'str_replace'
               5  RETURN                                                   $0
         5     6* RETURN                                                   null

      End of function ersetzeeuro%00.

      Wenn jetzt eine Software diese Opcodes in einer Datei in Binärform speichert, dann kommt einem die Datei auch unleserlich vor. Es ist allerdings relativ leicht, aus den generierten Opcodes wieder PHP-Code zu erzeugen, der zu genau diesen Opcodes führt (sogar die Variablennamen bleiben erhalten - müssen sie übrigens auch, weil PHP es ja anbietet über $$name, über variable Variablennamen auf Variablen zuzugreifen) - ich weiß zwar nicht, ob es fertige Tools für sowas gibt (d.h. Opcodes wieder zu PHP-Code zurückwandeln), aber sowas wäre definitiv nicht allzu schwierig zu schreiben.

      Insofern: Wirklich schützen kann man seine PHP-Scripte nie, man kann nur den Aufwand erhöhen, an den Source heranzukommen.

      Viele Grüße,
      Christian

      1. Moin Moin!

        Es gibt zwei Arten von Tools für PHP, die den Code verbergen:

        * Tools, die obfuscating betreiben [...]

        * Tools, die nur Opcodes speichern [...]

        Wenn jetzt eine Software diese Opcodes in einer Datei in Binärform speichert, dann kommt einem die Datei auch unleserlich vor. Es ist allerdings relativ leicht, aus den generierten Opcodes wieder PHP-Code zu erzeugen, der zu genau diesen Opcodes führt (sogar die Variablennamen bleiben erhalten - müssen sie übrigens auch, weil PHP es ja anbietet über $$name, über variable Variablennamen auf Variablen zuzugreifen) - ich weiß zwar nicht, ob es fertige Tools für sowas gibt (d.h. Opcodes wieder zu PHP-Code zurückwandeln), aber sowas wäre definitiv nicht allzu schwierig zu schreiben.

        Wunderbar zusammengefaßt.

        In Perl ist die Situation nahezu identisch. Um aus einem Opcode-Sammelsurium wieder brauchbaren Code zu machen, gibt es in Perl das Modul B::Deparse, im Standard-Lieferumfang enthalten.

        Siehe auch perlfaq3

        Insofern: Wirklich schützen kann man seine PHP-Scripte nie, man kann nur den Aufwand erhöhen, an den Source heranzukommen.

        Exakt, und gilt ebenso für Perl.

        VB soll auch in compilierter Form durchaus wiederherstellbar sein, inklusive Bezeichnernamen und Kommentaren.

        Für Flash und Java gibt es brauchbare Decompiler.

        C und C++ sind schwieriger, aber nicht unmöglich. Allerdings verliert man dort definitiv alle Kommentare und Bezeichnernamen.

        Alexander

        --
        Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so".
        1. Hallo Alexander,

          VB soll auch in compilierter Form durchaus wiederherstellbar sein, inklusive Bezeichnernamen und Kommentaren.

          (Leider) Nein. http://www.activevb.de/rubriken/faq/faq0030.html

          Jonathan