ebody: Download von Dateien verhindern

Hallo,

ich benutze eine KML Datei im Zusammenhang mit der Google Maps Javascript API. Im Script wird die komplette URL der KML Datei angegeben und somit könnte man sie einfach runterladen. Da ich sehr viel Zeit und Arbeit in die Erstellung der KML Datei gesteckt habe, möchte ich gerne verhindern, dass man sie einfach "kopieren" kann.

Gibt es eine Möglichkeit zu verhindern, dass die Datei runtergeladen werden kann oder der Inhalt sonst irgendwie "kopiert" werden kann?

Gruß ebody

  1. Hej ebody,

    Gibt es eine Möglichkeit zu verhindern, dass die Datei runtergeladen werden kann oder der Inhalt sonst irgendwie "kopiert" werden kann?

    Ja: vom Netz nehmen.

    Alles, was der Browser für die Ausführung der Seite benötigt wird immer automatisch geladen…

    Alles was im Web öffentlich zugänglich ist, kann mit wenig Aufwand herunter geladen werden. „Wenig Aufwand“ kann von der berechtigten Nutzung schnell abhalten, nie aber vor unberechtigtem Missbrauch schützen.

    Übrigens: in praktisch jeder Website und Webapp steckt sehr viel Arbeit. Sei es im Konzept oder im Code oder in den Texten oder im verwendeten Multimedia-Material oder im Design. Im besten Fall in all dem! 😉

    Marc

    1. Ja: vom Netz nehmen.

      Es dürfte aber eigentlich jedem klar sein, dass das natürlich nicht das Ziel und die Lösung sein kann. Diese Art von Antworten im Internet kommen so häufig vor und ich werde nie verstehen, warum Menschen in einem Forum, wo Leute nach Hilfe und Lösungen suchen, so antworten. Um so mehr weiß man die zu schätzen, die sachlich auf eine Frage eingehen oder eben nicht antworten.

      Übrigens: in praktisch jeder Website und Webapp steckt sehr viel Arbeit. Sei es im Konzept oder im Code oder in den Texten oder im verwendeten Multimedia-Material oder im Design. Im besten Fall in all dem! 😉

      Habe ich irgenwie etwas anderes behauptet, irgendwo gesagt "NUR ICH STECKE VIEL ARBEIT IN MEIN PROJEKT UND ALLE ANDEREN NICHT" oder es sollte nicht viel Arbeit in einem Projekt stecken?! Auch bei dieser Antwort frage ich mich, warum jemand so etwas schreibt.

      Gruß ebody

      1. Hej ebody,

        Ja: vom Netz nehmen. Es dürfte aber eigentlich jedem klar sein, dass das natürlich nicht das Ziel und die Lösung sein kann. Diese Art von Antworten im Internet kommen so häufig vor und ich werde nie verstehen, warum Menschen in einem Forum, wo Leute nach Hilfe und Lösungen suchen, so antworten. Um so mehr weiß man die zu schätzen, die sachlich auf eine Frage eingehen oder eben nicht antworten.

        Dann akzeptiere es doch einfach als "keine Antwort" 😉

        Was soll ich denn sonst sagen? Ist die einzige Antwort, die ich kenne.

        Aber wenn du diese Antwort schon unzählige Male bekommen hast, vielleicht stimmt sie ja?!?

        Die Konsequenzen mögen dir nicht gefallen, aber das macht die Antwort nicht falsch.

        Übrigens: in praktisch jeder Website und Webapp steckt sehr viel Arbeit. Sei es im Konzept oder im Code oder in den Texten oder im verwendeten Multimedia-Material oder im Design. Im besten Fall in all dem! 😉

        Habe ich irgenwie etwas anderes behauptet, irgendwo gesagt "NUR ICH STECKE VIEL ARBEIT IN MEIN PROJEKT UND ALLE ANDEREN NICHT" oder es sollte nicht viel Arbeit in einem Projekt stecken?! Auch bei dieser Antwort frage ich mich, warum jemand so etwas schreibt.

        Da helfe ich doch gerne: dein Engagement ist im Web eine Selbstverständlichkeit und sein Wesen.

        Marc

        1. Dann akzeptiere es doch einfach als "keine Antwort" 😉

          Was soll ich denn sonst sagen? Ist die einzige Antwort, die ich kenne.

          Aber wenn du diese Antwort schon unzählige Male bekommen hast, vielleicht stimmt sie ja?!?

          Die Konsequenzen mögen dir nicht gefallen, aber das macht die Antwort nicht falsch.

          "Ja: vom Netz nehmen." hätte man sich sparen können und einfach nur die Erklärung die darunter folgt, bis auf den letzten Absatz.

          Das hat nichts damit zu tun, dass mir die Konsequenzen nicht gefallen oder ist nur auf diese Frage/Antwort oder nur auf meine Fragen bezogen. Man kann es leider im Netz häufiger beobachten, auch bei anderen Nutzern die fragen.

          Da helfe ich doch gerne: dein Engagement ist im Web eine Selbstverständlichkeit und sein Wesen.

          Wenn du meinst, dass das bzgl. dieser Frage hilfreich und notwendig ist, diese "Weisheit" zu erwähnen. Gut das wir das jetzt wissen.

          Gruß ebody

          1. Hej ebody,

            "Ja: vom Netz nehmen." hätte man sich sparen können

            Muss ja nicht immer alles bierernst sein, oder?

            Deswegen gleich pampig zu werden kann man sich ja auch sparen. Finde ich persönlich unangenehmer als einen missglückten Witz…

            Das hat nichts damit zu tun, dass mir die Konsequenzen nicht gefallen oder ist nur auf diese Frage/Antwort oder nur auf meine Fragen bezogen. Man kann es leider im Netz häufiger beobachten, auch bei anderen Nutzern die fragen.

            Kein Problem: ich komme deinem Wunsch gerne nach und werde in Zukunft nicht mehr auf Fragen von Dir antworten. Das scheint mir die beste Lösung zu sein, um Dich vor unerwünschten Antworten zu schützen.

            Marc

  2. Hi,

    Gibt es eine Möglichkeit zu verhindern, dass die Datei runtergeladen werden kann oder der Inhalt sonst irgendwie "kopiert" werden kann?

    Ja: mach die Datei weder per http noch per ftp verfügbar.

    cu,
    Andreas a/k/a MudGuard

  3. Warum braucht denn Dein JS die ganze Datei bzw. den ganzen Inhalt? Wenn Du daran nichts ändern tust, ist die Datei auch in Gänze für jeden zu haben. MfG

  4. hallo

    ich benutze eine KML Datei im Zusammenhang mit der Google Maps Javascript API. Im Script wird die komplette URL der KML Datei angegeben und somit könnte man sie einfach runterladen. Da ich sehr viel Zeit und Arbeit in die Erstellung der KML Datei gesteckt habe, möchte ich gerne verhindern, dass man sie einfach "kopieren" kann.

    Gibt es eine Möglichkeit zu verhindern, dass die Datei runtergeladen werden kann oder der Inhalt sonst irgendwie "kopiert" werden kann?

    download via https? kann via .htaccess auch für einzelne Ressoucen gesteuert werden.

    Dabei bietet sich http status 410 gone an, da hierdurch auch eventuelle Links auf die Ressource gelöscht werden (wenn möglich).

    Dazu gibt diese einfachen Anweisungen in .htaccess:

    Redirect gone /foo/file.html
    
    #oder
    
    Redirect 410 /foo/bar/demo.php
    

    Andere Methoden, Ressourcen vom direkten Zugriff zu schützen sind:

    • diese Ressourcen ausserhalb von http-root zu speichern
    • sie in einem http geschützten Verzeichnis ablegen.
    1. Hej beatovich,

      Gibt es eine Möglichkeit zu verhindern, dass die Datei runtergeladen werden kann oder der Inhalt sonst irgendwie "kopiert" werden kann?

      download via https? kann via .htaccess auch für einzelne Ressoucen gesteuert werden.

      Dann wird die Anwendung aber nicht mehr funktionieren?

      Marc

      1. hallo

        Dann wird die Anwendung aber nicht mehr funktionieren?

        Solang die zu verwendenden Daten serverseitig ausgelesen werden, bleibt die Datei als ganze geschützt, auch wenn ein Teil der Daten publiziert wird.

        1. Hej beatovich,

          Dann wird die Anwendung aber nicht mehr funktionieren?

          Solang die zu verwendenden Daten serverseitig ausgelesen werden, bleibt die Datei als ganze geschützt, auch wenn ein Teil der Daten publiziert wird.

          Ja, klar. Vielleicht habe ich wegen dem verwendeten Tag javascript im Kopf gleich „muss zum Client“ zusammengebastelt…

          Marc

          1. Wenn man die Google Maps JavaScript API verwenden will, muss halt die url des darzustellenden kml(xml)-Dokuments angegeben werden. Ich kenne keine andere Möglichkeit, das Dokument zu übergeben.

            1. Hallo,

              … Ich kenne keine andere Möglichkeit, das Dokument zu übergeben.

              man könnte die Geodaten serverseits als Javascriptobjekt in die html-Datei einbauen. Dann wird es etwas schwieriger, die Daten zu extrahieren

              Gruß
              Jürgen

              1. Hallo,

                … Ich kenne keine andere Möglichkeit, das Dokument zu übergeben.

                man könnte die Geodaten serverseits als Javascriptobjekt in die html-Datei einbauen. Dann wird es etwas schwieriger, die Daten zu extrahieren

                Meine Frage wäre eher, ob denn im Browser tatsächlich alle Daten dieser Datei auf einmal gebraucht werden. Also wäre die Überlegung doch die, wie man das so aufteilt, daß nur diejenigen Daten im Browser ankommen welche da tatsächlich gebraucht werden.

                MfG

                1. Hallo Rolf,

                  Meine Frage wäre eher, ob denn im Browser tatsächlich alle Daten dieser Datei auf einmal gebraucht werden.

                  bei den Anwendern meines GPX-Viewers, mich eingeschlossen, ist das der Fall. Man zeigt alles, mit der Option des reinzoomens.

                  Gruß
                  Jürgen

                  1. Hi Jürgen,

                    Meine Frage wäre eher, ob denn im Browser tatsächlich alle Daten dieser Datei auf einmal gebraucht werden.

                    bei den Anwendern meines GPX-Viewers, mich eingeschlossen, ist das der Fall. Man zeigt alles, mit der Option des reinzoomens.

                    Ok, wusste ich nicht. Aber gibt es da keine Lazy Load Option?

                    MfG

                    1. Hallo Rolf,

                      Ok, wusste ich nicht. Aber gibt es da keine Lazy Load Option?

                      im API kenne ich keine, aber selbst programmieren kann man das bestimmt. Da die Geodateien aber meistens um 100 KB groß sind, lohnt sich das nicht. Und wer den Netzwerkverkehr beobachtet, kann sich die Datei wahrscheinlich auch wieder zusammenbasteln.

                      @ebody: Deine Frage kann man nur mit „Nein“ beantworten.

                      Gruß
                      Jürgen

                      1. Hallo zusammen,

                        eure Gedanken/Hinweise dazu habe ich gelesen und behalte sie im Hinterkopf. Ich probiere gerade viel herum und versuche doch noch eine Lösung zu finden.

                        Ich habe eine .htaccess Datei erstellt

                        <IfModule mod_rewrite.c>
                        RewriteEngine On
                        RewriteCond %{REQUEST_URI} meine.kml
                        RewriteCond %{HTTP_REFERER} !^http://localhost/dir/seiten/.* [NC] 
                        RewriteRule ^(.*)$ - [F] 
                        </IfModule>
                        

                        Die Google Maps Anwendung läuft und wenn ich die Adresse der KML Datei in den Browser direkt eingebe, erhalte ich eine 403 Seite. Das bringt allerdings nichts, wenn ich die KML Datei im Javscript direkt angebe, da man den Inhalt der KML Datei mit der Webdeveloper Console leicht erhält, wenn man unter "Network" schaut und "Response" der Datei anzeigen lässt.

                        Daher versuche ich einen zusätzlichen Schritt, um die URL der KML Datei im Script zu vermeiden Daten von PHP simplexml_load_file() mit JQuery "empfangen" Ob das funktionieren wird, kann ich jetzt noch nicht sagen.

                        Abgesehen davon, seht ihr ein Problem oder habe ich bzgl. der .htaccess etwas übersehen? Ist es z.B. wahrscheinlich, dass vom Browser gar kein Referer gesendet wird?

                        Gruß ebody

                        1. Hallo ebody,

                          eure Gedanken/Hinweise dazu habe ich gelesen und behalte sie im Hinterkopf.

                          hmm… wirklich?

                          Daher versuche ich einen zusätzlichen Schritt, um die URL der KML Datei im Script zu vermeiden Daten von PHP simplexml_load_file() mit JQuery "empfangen"

                          was hätte das dann für einen Sinn? Nochmal, solange du die Googleanwendung 1:1 an den User ausgeben willst, ist jeder Versuch zwecklos. Das ändert sich erst, wenn du die API stellvertretend für den User nutzt und diesem dann eine von dir erzeugte/kontrollierte Ausgabe anbietest. zb. Screenshots (ja ich weiß, mal wieder nicht barrierefrei, kommt eben auf die Zielgruppe an). Die Frage die bleibt, ist es den Aufwand überhaupt wert?

                          Gruss
                          Henry

    2. Vielen Dank, das werde ich mir anschauen.

      Aktuell teste ich noch etwas mit Ajax. Sollte das erfolgreich sein, teile ich das hier noch mit...

      Gruß ebody

  5. Gibt es eine Möglichkeit zu verhindern, dass die Datei runtergeladen werden kann oder der Inhalt sonst irgendwie "kopiert" werden kann?

    Technisch könnte da das was mit Encrypted Media Extensions machbar sein.

    1. Hi there,

      Gibt es eine Möglichkeit zu verhindern, dass die Datei runtergeladen werden kann oder der Inhalt sonst irgendwie "kopiert" werden kann?

      Technisch könnte da das was mit Encrypted Media Extensions machbar sein.

      Das ist jetzt nicht Dein Ernst, oder? Ich denke nicht, daß man das auch noch unterstützen sollte, indem man es verwendet…

      1. Das ist jetzt nicht Dein Ernst, oder? Ich denke nicht, daß man das auch noch unterstützen sollte, indem man es verwendet…

        Es gibt mit EME eine technische Möglichkeit für Content-Provider ihre Inhalte zu schützen, die unter den anderen Antworten noch nicht zu finden war. Und diese Möglichkeit gehört hier auch erwähnt - das habe ich ohne Wertung getan, das macht mich noch zu keinem EME-Befürworter. Du darfst gerne Kritik an EME üben, ich möchte mich an dieser Debatte jedoch nicht beteiligen.

  6. Hallo ebody,

    Gibt es eine Möglichkeit zu verhindern, dass die Datei runtergeladen werden kann oder der Inhalt sonst irgendwie "kopiert" werden kann?

    Eigentlich Nein, wenn du die API wie vorgegeben nutzt. In dem Fall kannst du höchstens das Ganze erschweren mehr aber auch nicht.

    Mal ein bildhaftes Beispiel: Die Medienindustrie hat früher exzessiv versucht Mediendateien durch Kopierschutzsysteme zu schützen. Trotz immenser Hilfe von Herstellern(Player/Devices) hat das keinen Nutzen, im Gegenteil oft ging der Schuss durch Inkompatibilitäten nach hinten los. Weil, na ja… einfach mal überlegen warum es Kinox.to(oder wie immer die heißen) gibt, weil Leute ganz simple das Ganze von der Leinwand abfilmen können oder noch besser direkt den Output anzapfen. Das ging früher(immer noch aber heute braucht's keiner mehr) auch gut bei Musik, was im Lautsprecher ankommt, und dass muss es ja, kann man auch einfach abgreifen.

    Na ja, und so ist das im Netz natürlich ähnlich, was der Browser anzeigen soll, musst du ihm auch geben. Es gibt da allerdings einen Unterschied und darum sagte ich auch, eigentlich.

    Denn, die Frage ist ja was für eine Anwendung du letztendlich da bastelst. Geht's nur um Positionsmarkierungen oder einiges mehr an Interaktivität? Denn du könntest dann ja eine eigene Umsetzung erzeugen, sofern du die Möglichkeiten hast. So ließen sich zb. die Userinteraktionen spiegeln auf eine serverseitige Auswertung, die wiederum das Ganze bspw. zu fertigen Screenshots ändert, denen man nicht mehr so einfach die Werte entnehmen könnte. Nur so ne Idee, gibt bestimmt noch bessere, aber ich denke du weist worauf ich hinaus will, eben eine Art fertige Software.

    Gruss
    Henry

    1. Danke für das Beispiel Henry!

      Genau das zeig, wie idiotisch es ist, die Daten verschlüsselt zu übertragen 😉

      Übrigens: Den Verkaufseinbruch in Sachen CD wollte man ja auch auf die sogenannten illegalen Downloads schieben. Und jetzt geht diese Plattform sogar an die Börse, Aha!!

      Nunja, das Geld ist ja nicht weg. Es hat nur einen anderen Besitzer 😉

      MfG

  7. ich benutze eine KML Datei im Zusammenhang mit der Google Maps Javascript API.

    Ich kenne die Innereien dieser API nicht, aber ... Radio Eriwan: Im Prinzip ja.

    Ich kenne das mit mp3-Hörproben, die auf der "berechtigten" Seite abgespielt werden können, aber bei Eingabe der im Quellcode genannte URL die Meldung bringen (sinngemäß) "Seite nicht vorhanden/erreichbar"

    Du könntest in Javascript womöglich eine bewusst "falsche" URL eingeben und die in einer gesonderten *.js - Datei umdefinieren, bevor sie von der API verwendet wird.

    Macht zumindest einige Detektivarbeit erforderlich.

    1. Hallo,

      Macht zumindest einige Detektivarbeit erforderlich.

      z.B. den Blick in die Browserkonsole.

      Gruß
      Jürgen