hanu: dateien sperren

hi,

ich programmiere für eine Firma eine Datenbank, die dann auf deren internem Server liegen soll.

Dazu habe ich 2 Fragen:

1.
Gibt es die Möglichkeit, die Dateien (.php .js etc) so zu sperren, dass man sie zwar nutzen, aber nicht öffnen kann? Also dass der Quellcode nicht (ohne Passwort) ersichtlich ist?

2.
Gibt es fertige Programme, die den Quellcode so komprimieren, dass jede Datei aus einer (sehr langen) Zeile besteht und alle Kommentare entfernt werden?

Danke schonmal

  1. Hallo,

    Gibt es die Möglichkeit, die Dateien (.php .js etc) so zu sperren, dass man sie zwar nutzen, aber nicht öffnen kann? Also dass der Quellcode nicht (ohne Passwort) ersichtlich ist?

    ja, du startest einen Webserver deiner Wahl und modifizierst ihn so, dass er PHP-Dateien parst.

    Bei .js Dateien entzieht sich mir der Sinn deines Vorhabens. Wenn du den Inhalt einer JavaScript-Datei unzugänglich machst, wie soll der Browser der das Skript ausführen soll dann da ran kommen?

    Gibt es fertige Programme, die den Quellcode so komprimieren, dass jede Datei aus einer (sehr langen) Zeile besteht und alle Kommentare entfernt werden?

    Wozu soll das gut sein? Das ist kein "komprimieren", sondern sinnfreihes unleserlich machen.
    Zum Komprimieren des Outputs beschäftige dich mit dem Handbuch deines Webservers.

    Grüße, Matze

      Gibt es die Möglichkeit, die Dateien (.php .js etc) so zu sperren, dass man sie zwar nutzen, aber nicht öffnen kann? Also dass der Quellcode nicht (ohne Passwort) ersichtlich ist?

      ja, du startest einen Webserver deiner Wahl und modifizierst ihn so, dass er PHP-Dateien parst.

      Webserver ist aber nicht meiner Wahl, sondern der interne der Firma..

      Gibt es fertige Programme, die den Quellcode so komprimieren, dass jede Datei aus einer (sehr langen) Zeile besteht und alle Kommentare entfernt werden?

      Wozu soll das gut sein? Das ist kein "komprimieren", sondern sinnfreihes unleserlich machen.
      Zum Komprimieren des Outputs beschäftige dich mit dem Handbuch deines Webservers.

      soll dazu gut sein, dass der code nicht geklaut und eigenmodifiziert wird. Habe ich schon oft gesehen, dass Scripts in eine Zeile "komprimiert" werden (komprimiert bezieht sich natürlich nicht auf den Ihnhalt, sondern auf die gespeicherten Zeichen, da Zeilenumbrüche etc. wegfallen).

      Bei jquery sind bspw. die js Dateien alle in einer Zeile. Bei Google ist der quellcode der Seite ebenfalls in wenige aber dafür sehr lange zeilen gepackt.

      Ich möchte das ganze machen, damit eben niemand einfach in meinem code rumwurschtelt und auch niemand module davon klaut.

      1. @@hanu:

        nuqneH

        Gibt es fertige Programme, die den Quellcode so komprimieren, dass jede Datei aus einer (sehr langen) Zeile besteht und alle Kommentare entfernt werden?

        Ja …

        Ich möchte das ganze machen, damit eben niemand einfach in meinem code rumwurschtelt und auch niemand module davon klaut.

        … und es gibt Programme, die solchen schlecht leserbar gemachten Quelltext wieder leserlich foramtieren.

        Qapla'

        --
        Alle Menschen sind klug. Die einen vorher, die anderen nachher. (John Steinbeck)
        1. @@Gunnar Bittersmann:

          nuqneH

          … und es gibt Programme, die solchen schlecht leserbar gemachten Quelltext wieder leserlich foramtieren.

          … und es gibt Programme, die solchen schlecht leserbar gemachten Fließtext wieder leserlich … – nennt sich Rechtschreibprüfung! ;-)

          Ich amtiere? Nein!

          Man fragt mich manchmal,
          mich, den Schlachter:
          „So’n Schlachter, sagen Sie, was macht der?“
          Worauf ich gerne repondiere:
          „Ich filetiere viele Tiere.“
          (Bodo Wartke)

          Qapla'

          --
          Alle Menschen sind klug. Die einen vorher, die anderen nachher. (John Steinbeck)
        2. Hallo Gunnar,

          Gibt es fertige Programme, die den Quellcode so komprimieren, dass jede Datei aus einer (sehr langen) Zeile besteht und alle Kommentare entfernt werden?

          Ja …
          … und es gibt Programme, die solchen schlecht leserbar gemachten Quelltext wieder leserlich foramtieren.

          mal so als Zwischenfrage... brauch Mensch sowas? Um ein paar Bytes zu sparen?

          Grüße, Matze

          1. @@Matze:

            nuqneH

            … und es gibt Programme, die solchen schlecht leserbar gemachten Quelltext wieder leserlich foramtieren.

            mal so als Zwischenfrage... brauch Mensch sowas?

            Programme, die solchen schlecht leserbar gemachten Quelltext wieder leserlich foramtieren? Ja, könnte Mensch brauchen. ;-)

            Braucht Mensch Programme, die den Quellcode so komprimieren, dass jede Datei aus einer (sehr langen) Zeile besteht und alle Kommentare entfernt werden?

            Nein.

            Um ein paar Bytes zu sparen?

            Wenn man ein paar Bytes bei der Übertragung sparen will, komprimiert man. Die Kompression holt bei Tabulator-Zeichen* und wiederholt auftretenden Tokens (sprechende Variablennamen) einiges raus.

            Qapla'

            * manche sollen sogar multiple Leerzeichen für Einrückungen verwenden – wie widerlich!

            --
            Alle Menschen sind klug. Die einen vorher, die anderen nachher. (John Steinbeck)
            1. Danke für die Erklärung :)

              * manche sollen sogar multiple Leerzeichen für Einrückungen verwenden – wie widerlich!

              Die Tab-Taste ist eben sehr verlockend. Auf dem Bürorechner hier konnte ich meinen Editor so einstellen, dass er Tabs in Leerzeichen umwandelt. Auf dem Laptop wieder nicht. Zum Glück schreib ich selten an Scripten auf dem Laptop ;)

              Matze

              1. @@Matze:

                nuqneH

                Auf dem Bürorechner hier konnte ich meinen Editor so einstellen, dass er Tabs in Leerzeichen umwandelt.

                Warum sollte man so etwas tun wollen?

                Qapla'

                --
                Alle Menschen sind klug. Die einen vorher, die anderen nachher. (John Steinbeck)
                1. Warum sollte man so etwas tun wollen?

                  Weil die Tab-Breiten nicht überall gleich groß sind.

                  1. @@Matze:

                    nuqneH

                    Warum sollte man so etwas tun wollen?

                    Weil die Tab-Breiten nicht überall gleich groß sind.

                    Warum sollten die das sein? Soll sich doch jeder sie so einstellen, wie er möchte. Zitat 1756.

                    Qapla'

                    --
                    Alle Menschen sind klug. Die einen vorher, die anderen nachher. (John Steinbeck)
                    1. Zum einen bin ich ehrlich gaaaanz faul und hab keine Lust an dem alten Ding noch was einzustellen. Der ist nur für Word unterwegs am Leben.
                      Und zum anderen hatte ich irgendwie immer das Gefühl Leerzeichen wären 'sauberer'.

                      Macht ja nix, ich lass mich gern belehren und werd meine Tabs, zumindest im Büro, alle vernünftig einstellen :)

                      Grüße, Matze

                      1. @@Matze:

                        nuqneH

                        Und zum anderen hatte ich irgendwie immer das Gefühl Leerzeichen wären 'sauberer'.

                        Ich nie.

                        Macht ja nix, ich lass mich gern belehren

                        http://forum.de.selfhtml.org/archiv/2008/11/t179990/#m1188590

                        Qapla'

                        --
                        Alle Menschen sind klug. Die einen vorher, die anderen nachher. (John Steinbeck)
                        1. http://forum.de.selfhtml.org/archiv/2008/11/t179990/#m1188590

                          ;D ja gut, das triffts wohl.
                          Du wirkst da aber auch schon ziemlich genervt ;)

                          Grüße, Matze

                          1. Mahlzeit Matze,

                            http://forum.de.selfhtml.org/archiv/2008/11/t179990/#m1188590

                            ;D ja gut, das triffts wohl.
                            Du wirkst da aber auch schon ziemlich genervt ;)

                            Gunnar? Nicht doch - nie nicht!

                            SCNR ...

                            MfG,
                            EKKi

                            --
                            sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
                            1. @@EKKi:

                              nuqneH

                              Du wirkst da aber auch schon ziemlich genervt ;)

                              Gunnar? Nicht doch - nie nicht!

                              Eben.

                              Ich nerve nur andere.

                              SCNR2.

                              Qapla'

                              --
                              Alle Menschen sind klug. Die einen vorher, die anderen nachher. (John Steinbeck)
                  2. Warum sollte man so etwas tun wollen?

                    Weil die Tab-Breiten nicht überall gleich groß sind.

                    Zwischen Newline und erstem eingerückten \S ist das irrelevant.
                    Tabbreiten sind konfigurierbar.

                    mfg Beat

                    --
                    ><o(((°>           ><o(((°>
                       <°)))o><                     ><o(((°>o
                    Der Valigator leibt diese Fische
                  3. Moin!

                    Weil die Tab-Breiten nicht überall gleich groß sind.

                    Dafür beherrschen alle auch nur geringfügig guten Editoren das Einrücken ganzer Textblöcke mit [TAB], mit [Umschalt]+[TAB] sogar das zurückrücken. Das spart sehr viel Zeit gegenüber der Vergewaltigung der Leerzeichentaste (auch wenn die so schön groß ist).

                    MFFG (Mit freundlich- friedfertigem Grinsen)

                    fastix

                    --
                    Als Freiberufler bin ich immer auf der Suche nach Aufträgen: Schulungen, Seminare, Training, Development
                    1. @@fastix®:

                      nuqneH

                      Dafür beherrschen alle auch nur geringfügig guten Editoren das Einrücken ganzer Textblöcke mit [TAB], mit [Umschalt]+[TAB] sogar das zurückrücken.

                      Da tun sie auch, wenn mit multiplen Leerzeichen statt Tab-Zeichen eingerückt wird.

                      Das spart sehr viel Zeit gegenüber der Vergewaltigung der Leerzeichentaste (auch wenn die so schön groß ist).

                      Das ist nun wirklich kein Argument für das Einrücken mit Tabs.

                      Qapla'

                      --
                      Alle Menschen sind klug. Die einen vorher, die anderen nachher. (John Steinbeck)
                    2. Hi,

                      Weil die Tab-Breiten nicht überall gleich groß sind.
                      Dafür beherrschen alle auch nur geringfügig guten Editoren das Einrücken ganzer Textblöcke mit [TAB], mit [Umschalt]+[TAB] sogar das zurückrücken.

                      die Zuordnung von Taste und Funktion kommt mir seltsam vor, aber meinetwegen.
                      Ich habe über die Jahre kennen und schätzen gelernt:

                      Tab        rückt den Cursor an die nächste Tab-Position vor
                        BkSp       rückt den Cursor um ein Zeichen zurück, wenn noch Nutzzeichen
                                   links davon stehen, sonst um eine Tab-Breite
                        Shift-Tab  rückt den markierten Block um eine Tab-Breite ein
                        Shift-BkSp rückt den markierten Block um eine Tab-Breite zurück

                      Dabei ist es dann nebensächlich, ob der Editor Tabs in Leerzeichen wandelt, solange ich trotz der Tabs den Cursor einzeln zeichenweise bewegen kann. Es ist lästig, wenn man mit der Cursortaste horizontal durch die Zeile navigiert und die Bewegung wegen der Tabs statt Spaces an einigen Stellen plötzlich ums drei- bis vierfache beschleunigt erscheint.

                      Ciao,
                       Martin

                      --
                      F: Was ist eigentlich aus deinem schlimmen Durchfall geworden?
                      A: Mein Arzt hat mir Valium verschrieben.
                      F: Und das hilft?
                      A: Naja, ich mach mir immer noch in die Hose. Aber inzwischen ist es mir egal.
      2. Webserver ist aber nicht meiner Wahl, sondern der interne der Firma..

        Du hast die Antwort nicht richtig verstanden. Es geht darum, dass PHP-Quelltext, wie schon gesagt, nicht einzusehen ist wenn die Datei vom Server geparst wird.
        Den von PHP generierten Code kann man sich hingegen ganz gewöhnlich im Browser anschauen.

        soll dazu gut sein, dass der code nicht geklaut und eigenmodifiziert wird. Habe ich schon oft gesehen, dass Scripts in eine Zeile "komprimiert" werden (komprimiert bezieht sich natürlich nicht auf den Ihnhalt, sondern auf die gespeicherten Zeichen, da Zeilenumbrüche etc. wegfallen).

        Entschuldige bitte, aber das ist absoluter Schwachsinn.
        Code sollte so geschrieben werden, dass er von jedem der halbwegs Ahnung davon hat nachvollzogen werden kann. Dazu gehören auch Kommentare und Zeileneinrückungen. Der Code wird sonst unwartbar.

        Bei Google ist der quellcode der Seite ebenfalls in wenige aber dafür sehr lange zeilen gepackt.

        Das liegt daran, dass die Seite dynamisch erstellt wurde und dabei keine Rücksicht auf Einrückungen gelegt wurde. Im Script welche die Seite erstellt sind ganz sicher eingerückte Zeilen, Kommentare etc.

        Ich möchte das ganze machen, damit eben niemand einfach in meinem code rumwurschtelt und auch niemand module davon klaut.

        Wie soll jemand in deinem Code rumwurschteln? Die Dateien liegen normalerweise ohne Schreibrechte auf dem Server. Oder benutzt du einen Public-FTP-Server? Kann ja alles sein...
        Und "code klauen"... versteh das nicht falsch, aber von jemanden der solche Fragen stellt gibt es wahrscheinlich nicht viel zu klauen was er nicht selbst "geklaut" hat.

        Datenbankspielereien sind kein Geheimniss, es gibt sogar mindestens 1 Online-Handbuch zu MySQL, du solltest dein Vorhaben also nochmal dringend überdenken.

        Grüße, Matze

      3. Moin!

        Webserver ist aber nicht meiner Wahl, sondern der interne der Firma..

        Ich möchte das ganze machen, damit eben niemand einfach in meinem code rumwurschtelt und auch niemand module davon klaut.

        Ich habe verstanden, Du möchtest nicht, dass einer aus Deiner Firma die von Dir geleistete Arbeit weiter nutzt.

        [x] Das ist definitiv ein Kündigungsgrund.

        MFFG (Mit freundlich- friedfertigem Grinsen)

        fastix

        --
        Als Freiberufler bin ich immer auf der Suche nach Aufträgen: Schulungen, Seminare, Training, Development
  2. ich programmiere für eine Firma eine Datenbank, die dann auf deren internem Server liegen soll.

    Das sollte sich die Firma noch mal überlegen, wenn Du solche Fragen stellst, ernsthaft.

    Gibt es die Möglichkeit, die Dateien (.php .js etc)

    php js etc hat was mit der Datenbank zu tun?

    so zu sperren, dass man sie zwar nutzen, aber nicht öffnen kann?

    Nur wenn "nutzen" nur darin besteht Speicherplatz zu belegen oder das vorhandensein der Datei zu brüfen, sonst nicht.

    Also dass der Quellcode nicht ... ersichtlich ist?

    Ach so. Der ist bei php, solange der Sever regulär funktioniert, nie ersichtlich (also "übers Internet"). Allerdings sollte jeder den php-Code kennen dürfen, ohne daß dies eine Gefahr darstellt, sonst hat man was falsch gemacht.

    Gibt es fertige Programme, die den Quellcode so komprimieren, dass jede Datei aus einer (sehr langen) Zeile besteht und alle Kommentare entfernt werden?

    Das sollte sich die Firma wirklich noch mal überlegen, ernsthaft, wirklich.

  3. Hi

    Google nach dem Stichwort "Code Obfuscation". Für PHP scheint es fertige Lösungen zu geben.

    HTH

    Uwe
    Portland, Oregon

    1. @@uwe:

      nuqneH

      Google nach dem Stichwort "Code Obfuscation".

      Google danach nach "Code Deobfuscation" und ärgere dich, dass du dir die Mühe der ersten Suche gemacht hast.

      Qapla'

      --
      Alle Menschen sind klug. Die einen vorher, die anderen nachher. (John Steinbeck)
      1. Hi Gunnar

        Ganz so einfach ist es dann doch nicht. "Code Deobfuscation" bedeutet nämlich nicht, daß du anschließend den originalen Quellcode gut lesbar vor dir hast. Außerdem ist zu bedenken, daß Reverse Engineering nicht unbedingt die Domain von Otto Normalverbraucher ist.

        Gruß

        Uwe
        Portland, Oregon

        1. Hallo,

          "Code Deobfuscation" bedeutet nämlich nicht, daß du anschließend den originalen Quellcode gut lesbar vor dir hast.

          natürlich ist die ursprüngliche Formatierung nicht wiederherstellbar, auch nicht sprechende Variablen- und Funktionsnamen, sobald sie mal verstümmelt wurden.
          Aber so ein Programm kann den JS-Quelltext zumindest wieder sinnvoll formatieren. Damit ist er allemal besser lesbar, als wenn alles in eine lange Zeile gequetscht wurde.

          Außerdem ist zu bedenken, daß Reverse Engineering nicht unbedingt die Domain von Otto Normalverbraucher ist.

          Stimmt. Quellcodelesen aber eigentlich auch nicht.

          So long,
           Martin

          --
          F: Was macht ein Offizier, der in der Nase bohrt?
          A: Er holt das Letzte aus sich heraus.
        2. @@uwe:

          nuqneH

          "Code Deobfuscation" bedeutet nämlich nicht, daß du anschließend den originalen Quellcode gut lesbar vor dir hast.

          Sprechende Variablennamen hat man dann sicher nicht. Übersichtliche Einrückungen aber schon, womöglich besser als im Original.

          Außerdem ist zu bedenken, daß Reverse Engineering […]

          Nun tun wir mal nicht so, als ob das Reformatieren von Quelltext mit Reassembling gleichzusetzen wäre.

          Qapla'

          --
          Alle Menschen sind klug. Die einen vorher, die anderen nachher. (John Steinbeck)
          1. Hi Gunnar

            Nun tun wir mal nicht so, als ob das Reformatieren von Quelltext mit Reassembling gleichzusetzen wäre.

            Code Obfuscation/ Deobfuscation solls nicht nur für PHP oder Javascript geben, hab ich mir sagen lassen... ;)

            Viele Grüße

            Uwe
            Portland, Oregon

            1. @@uwe:

              nuqneH

              Nun tun wir mal nicht so, als ob das Reformatieren von Quelltext mit Reassembling gleichzusetzen wäre.
              Code Obfuscation/ Deobfuscation solls nicht nur für PHP oder Javascript geben, hab ich mir sagen lassen... ;)

              Jaja.

              Worauf ich hinauswill: Wird fremder Maschinencode in C++ zurückübersetzt, hat der entstehende Programmcode vermutlich wenig Ähnlichkeit mit dem fremden Original (wenn das überhaupt C++ war).

              Wird einzeiliger JavaScript-Code wieder besser lesbar formatiert, ist er dem Original sehr ähnlich, eventuell sogar überlegen. Bis auf sprechende Variablennamen, natürlich.

              Qapla'

              --
              Alle Menschen sind klug. Die einen vorher, die anderen nachher. (John Steinbeck)