Seite 1 von 2

XML Datei schützen, wenn ja wie?

Verfasst: 29.07.2009, 21:29
von xoni
Guten Abend, liebe Leute

Folgendes Problem beschäftigt mich zurzeit.
Eine XML-Datei wird in einem JavaScriptCode eingelesen.
Ein Blick in den Quellcode genügt also um die URL der XML-Datei
in die Browseradresszeile einzugeben und sich die Daten anzusehen.
Genau das möchte ich verhindern.
Nun, ich dachte kein Problem, pack die XML einfach in einen Order und schütze diesen Ordner mit einem

Code: Alles auswählen

Order Deny, Allow
Deny from all
vor neugierigen Blicken. Das funktioniert ja auch wunderbar, solange der Zugriff auf diese Datei durch PHP erfolgt,
nicht jedoch durch die Einbindung innerhalb eines JavaScript Codes.

Gibt es dafür eine Lösung? Für Denkanstösse danke ich im Voraus…

Verfasst:
von

Verfasst: 29.07.2009, 21:47
von DanielS
JavaScript läuft clientseitig, d.h. der Client muss die xml-Datei irgendwie lesen. Spätestens wenn Dein JavaScript die Datei lesen will, landet die xml-Datei beim Besucher auf dem Rechner.

Das einzige was Du machen könntest wäre die Datei zu verschlüsseln, aber da Dein JavaScript die Datei wieder entschlüsseln müsste, bringt das letztendlich auch nichts.

Verfasst: 29.07.2009, 22:50
von mgutt
Soll die XML stetig unerreichbar bleiben oder reicht eine 24 Sperre? Ich würde z.B. vorschlagen, dass Du einen Hash generierst, der sich durch den Tag des Datums ergibt und einem Salt, den Du vorgibst. Ruft jemand die URL also am nächsten Tag wieder auf, resultierst Du im Script eine Fehlermeldung, sofern der Hash nicht mehr korrekt ist.

Beispiel:

Code: Alles auswählen

&hash=<?= md5&#40;'GEHEIMERsalt' . date&#40;'d'&#41;&#41;; ?>
Eine stetige Sperre ist nicht möglich, da der Inhalt sogar mit einem simplen alert() ausgegeben werden könnte.

Wenn dann könntest Du höchstens gegen Noobs was machen und die URL in mehreren Phasen verschlüsseln:

Code: Alles auswählen

var url = unescape&#40;'%68%74%74%70%3A%2F%2F'&#41;&#41;;
Das resultiert z.B. "http://".

Verfasst:
von
SEO Consulting bei ABAKUS Internet Marketing
Erfahrung seit 2002
  • persönliche Betreuung
  • individuelle Beratung
  • kompetente Umsetzung

Jetzt anfragen: 0511 / 300325-0.


Verfasst: 30.07.2009, 08:08
von xoni
Hallo,

vielen Dank für Eure Tipps...

Verfasst: 30.07.2009, 09:19
von mgutt
Was mir gerade noch eingefallen ist. Ich hatte in einem anderen Bereich auch sowas mit einem Hash angedacht, doch immer ein Problem damit, dass der Hash ja ab Zeitpunkt X verfällt. Also z.B. bei 24 Std. um 00:00 Uhr. Bei Stunden jedesmal bei 00 Minuten usw.

Jetzt ist mir dazu eine Lösung eingefallen. Man könnte einen Hash nach Minuten generieren:

Code: Alles auswählen

&hash=<?= md5&#40;'GEHEIMERsalt' . date&#40;'i'&#41;&#41;; ?>
Und bei der Abfrage prüft man einfach gegen den Hash der aktuellen Minute und der letzten Minute (oder noch weiter zurück, je nachdem wie lange man den Hash als gültig akzeptiert). Man muss nur darauf achten, dass man bei Minute 00 wieder auf Minute 59 wechselt.

Hätte ich auch mal früher drauf kommen können :roll:

Du könntest z.B. max. 2 Minuten als gültig akzeptieren. Ich denke mal dass Deine XML-File in der Minute geladen wird, in der die Seite geöffnet wird. Falls sich also jemand die Mühe macht und die URL in Deinem Script sucht und manuell öffnet, ist sie schon verfallen (vorausgesetzt er braucht länger als 2 Minuten, daher sollte man die URL zusätzlich ruhig verschlüsseln, damit auch ein Pro was länger braucht, um die URL zu decodieren).

Um das zu umgehen müsste ein Pro sich zwei mal mit dem Script auseinandersetzen und etwas unter Druck arbeiten. Oder er schreibt sich ein Script das Deine Seite ausließt, die URL decodiert und dann Deine Quelle ausließt.

Dagegen würde nur helfen, wenn Du den Referer in der XML-Quelle beim Besucher voraussetzt. Also:

Code: Alles auswählen

if &#40;strpos&#40;$_SERVER&#91;'HTTP_REFERER'&#93;, $_SERVER&#91;'HTTP_HOST'&#93;&#41; !== false&#41; &#123;
Es gibt allerdings Besucher, die den Referer mit Anti-Spy-Ware deaktivieren. Und da der Referer gefälscht werden kann, könnte auch ein Pro diesen manuell übergeben. Darauf muss ein Pro aber erstmal kommen.

So mehr fällt mir jetzt wirklich nicht mehr ein, wie man die Quelle sicher könnte :lol:

Verfasst: 30.07.2009, 10:33
von Lord Lommel

Re: XML Datei schützen, wenn ja wie?

Verfasst: 30.07.2009, 12:30
von Mork vom Ork
wollbay hat geschrieben:Eine XML-Datei wird in einem JavaScript-Code eingelesen.
Ein Blick in den Quellcode genügt also um die URL der XML-Datei
in die Browseradresszeile einzugeben und sich die Daten anzusehen.
Genau das möchte ich verhindern.
Du möchtest also verhindern, dass ein Besucher Zugriff auf Daten hat, die du an den Besucher schicken musst. Denk' mal genau drüber nach - das ist logisch unmöglich.

Aus welchem Grund soll der Besucher denn die Daten nicht ansehen dürfen, die du ihm zur Ansicht schickst? Oder anders: Warum schickst du ihm Daten, die er nicht sehen soll? Geht es vielleicht eher um die URL selbst?

Verfasst: 30.07.2009, 13:08
von xoni
@ mork vom Ork
Geht es vielleicht eher um die URL selbst?
nun ja, es geht darum, das die Daten Kundendaten sind, die aus einer DB generiert werden.
Die XML brauche ich, um Marker in einer Google Maps Karte anzuzeigen.
Ich möchte eigentlich verhindern, das Mitbewerber über den Aufruf der XML einfach an meine Kundendaten (Adressen) gelangen.
Aber ich habe eingesehen, das das so nicht geht; zumindest nicht, solange die XML via JavaScript aufgerufen wird.

Verfasst: 30.07.2009, 13:18
von mgutt
Dann würde ich Dir empfehlen statt Daten Bilder auszuliefern. So gäbe es nur ein URL zu einem Bild und die GEO-Daten, die jemand klauen könnte.

Verfasst: 30.07.2009, 13:56
von Mork vom Ork
wollbay hat geschrieben:Ich möchte eigentlich verhindern, das Mitbewerber über den Aufruf der XML einfach an meine Kundendaten (Adressen) gelangen.
Ist das eine öffentliche Karte nach dem Motto &#8222;Wir haben Kunden in ganz Deutschland&#8220;?

Verfasst: 30.07.2009, 14:04
von xoni
Ist das eine öffentliche Karte nach dem Motto „Wir haben Kunden in ganz Deutschland“?
genau in der Art....

Verfasst: 30.07.2009, 14:19
von Mork vom Ork
wollbay hat geschrieben:
Ist das eine öffentliche Karte nach dem Motto &#8222;Wir haben Kunden in ganz Deutschland&#8220;?
genau in der Art....
Also da täte ich mir weniger Sorgen um die Mitbewerber denn um die Kunden machen. Ich als Kunde wäre mächtigst angepisst, wenn du meine Identität in die Welt hinausposaunst - dabei ist es unerheblich, wie die Daten in die Karte kommen, es reicht, dass sie in der Karte sichtbar sind. Die wenigsten dürften in einem 100-Parteien-Mietbunker leben.
Und ich möchte behaupten, dass das auch rechtlich gewaltige Probleme für dich geben würde. Aber Gesetz hin oder her, so geht man nicht mit Kundendaten um.

Wenn überhaupt, dann sollte nicht mehr als die Postleitzahl herangezogen werden, und dies auch nur, wenn sichergestellt ist, dass die Markierung nicht irgendwen zu deinem Kunden macht.

Verfasst: 30.07.2009, 14:27
von xoni
Also da täte ich mir weniger Sorgen um die Mitbewerber denn um die Kunden machen.
Nein nein, da haben wir uns falsch verstanden;

Die Daten sollen ja bewußt mit Google Maps veröffentlicht werden,
das ist im Interesse der Kunden. Ich möchte ja nur nicht, das Mitberwerber so ganz einfach an meine sauer erarbeiteten Adressen kommen (einfach XML parsen). Wenn Sie schon die Adressen klauen wollen, dann sollen Sie sich die Mühe machen jeden Marker auf der Karte anzuklicken um sich dann die Adresse abzuschreiben....

Verfasst: 30.07.2009, 14:48
von Mork vom Ork
wollbay hat geschrieben:Wenn Sie schon die Adressen klauen wollen, dann sollen Sie sich die Mühe machen jeden Marker auf der Karte anzuklicken um sich dann die Adresse abzuschreiben....
Wie oben schon erwähnt: Irgendwie müssen die Daten in die Karte kommen. Den Mühe-Faktor kannst du bestenfalls leicht erhöhen, indem du die zu importierenden Daten verschleierst (durch Bitschiebereien oder Exklusiv-Oder) und dabei möglichst viel Hokuspokus veranstaltest. Da sich die &#8222;Entschlüsselung&#8220; aber zwangsweise auf dem Besucherrechner befinden muss und somit, egal wieviel Tralala sie umfasst, dem Besucher bekannt ist, kann das immer nur eine kleine Hürde sein. In den sauren Apfel wirst du IMHO beißen müssen.

Eine im Funktionsumfang eingeschränkte Alternative wäre höchstens, statt einer Google-Karte eine eigene als statische, anklickbare Grafik anzubieten, die bei jedem Klick eine Abfrage an deinen Server macht, um die zur Markierung gehörende Adresse auszugeben. Die Klickfrequenz lässt sich dann serverseitig beschränken und somit die Dauer, die das Auslesen deiner Adressliste benötigt, deutlich erhöhen.

Verfasst: 30.07.2009, 14:50
von DanielS
wollbay hat geschrieben:Die XML brauche ich, um Marker in einer Google Maps Karte anzuzeigen.
Wenn es wirklich nur um die Market geht, dann brauchst Du doch nur die lat/lng-Daten per xml zu übergeben.