Hi zusammen,
Am Wochenende habe ich mich mit der Komponente com_google_maps beschäftigt. Dabei ist mir die Möglichkeit durch den Kopf gegangen eine interne Adressdatenbank mit der Komponente grafisch aufgepeppt darzustellen (bietet ja z.B. cb-Support und da hätte sich etwas basteln lassen).
ABER: diese Daten sollten intern sein, also interessierte es mich, welche Daten denn da an die google-API übergeben werden und ich war erstmal baff:
Google hat ja prinzipiell die Möglichkeit über den key (wäre doch eigentlich nicht notwendig *g*) alle Daten zu sammeln, die die User an die API übermitteln...
Das war mir aber bekannt. Was mich viel mehr geschockt hat ist, dass die kompletten Adressdaten in einem frei zugänglichen xml-file abgespeichert werden.
Man kann zwar Listen z.B. nur für registrierte User freigeben, die Daten werden aber trotzdem in das xml-file gespeichert, dass dann für jeden zugänglich ist.
Dabei braucht google eigentlich nur die Geodaten für für seine API.
Also das hier ist jetzt kein Problem der google API, sondern der Komponente google_maps:
Wenn jemand eine interene Adressenliste an die Komponente übergibt, bzw. die User die Komponente mit Daten füttern, dann sind die Daten für jeden User oder Bot im Internet schön formatiert in xml erreichbar.
Also eine tolle Möglichkeit sich per Searchbot eine Adressdatenbank anzulegen bzw. je nach dem verstößt man als Anwender gegen das eigene Versprechen Adressen nicht weiter zu geben.
Ich habe den Programmierer der Komponente per Email kontaktiert, nach etwas Wartezeit dieses Verhalten im Bugtracker bei forge.joomla.org berichtet, aber sein Urlaub, seine Auszeit.?.?.? sei ihm gegönnt => hat sich bisher nicht gemeldet.
Angestoßen von diesem Beitrag habe ich dann nach knapp einer Woche Wartezeit beschlossen eine vorläufige Behebung dieses Problems anzubieten.
Wichtig:Problem: Informationen auch aus "Registered" oder "Special" gestellten Adresslisten und Markern in xml-file öffentlich zugänglich.
- Ich werde diese Komponente nicht weiterentwickeln und nicht supporten.
- Ich biete keine Sicherheitsgarantie, dass ich alle "Sicherheitslücken" in der Komponente gefunden habe.
- Ich habe keine der anderen Bugs gefixed.
- Ich biete nur eine Lösung an, die das von mir geschilderte Problem für interne Adressdaten löst.
Version: com_google_maps 2.6 von forge.joomla.org
Changes:Vorgehen:
- Drei files vor direktem Aufruf per URL geschützt => minimale Gefahr, da bei schlechter Serverkonfiguration theoretisch ein fremdes File ausgelesen werden könnte.
- Generierung von xml-files mit Kontrolle der Zugriffsbeschränkung versehen.
Das XML-File wird dann direkt per PHP kreiert und über die Umgebungsvariablen von Joomla kann man das file an die Berechtigung des Nutzers (Public, Registered, Special) anpassen. Das file wird dann über den Cache des Users an die google-API übergeben, bzw. die Daten werden von dem xsl-formatierungs-file im Marker eingefügt.
- zip herunterladen
- zip entpacken und Dateien per FTP hochladen (sind schon in der richtigen Ordnerstruktur abgespeichert)
- XML-Generierung in der Configuration der Komponente - Advanced - Dynamic XML Creation auf Yes stellen.
Überprüfen:Achtung: Adressdaten, die auf public gestellt sind, sind natürlich noch offen erreichbar.
- http://www.euredomain.de/components/...oogle_maps.xml aufrufen => statisches xml-file
=> macht nix, wenn da ein Fehler angezeigt wird => das bedeutet dann nur, dass keine Daten in dem xml-file drinstehen.- http://www.euredomain.de/index2.php?...xml2&no_html=1 => dynamisches xml-file.
Wer die komplette Komponente vor Zugriff vor unregistrierten Usern schützen will, der kann sich die Version com_google_maps_only_registered_b2mfix.zip herunterladen.
Hoffe, dass ich damit jemandem helfen konnte,
ciao b2m


LinkBack URL
About LinkBacks
Zitieren
Lesezeichen