2012-05-16 12 views
8

Próbuję chronić mój plik KML przed pobieraniem lub jego pobieraniem. Wszystko, czego chcę, to plik do obejrzenia w Google Maps lub Google Earth, ale nikt nie może go pobrać ani wyodrębnić danych "łatwo" (plik kml nie będzie dostępny publicznie). Moje pliki kml są wynikiem głębokiej i wyłącznej analizy, która jest podpisem, który chcę ukryć przed konkurentami.Chroń plik KML przed pobraniem lub uzyskaniem dostępu do pliku

Czy są jeszcze jakieś alternatywy, aby przekonwertować kml na format, z którego nie można łatwo uzyskać dane. Moje pliki KML mają wieloboki w 3D.

Rozumiem pojęcie wszystkiego, co można zobaczyć można pobrać lub ekstrakcji jakoś

+2

Czy w ciągu ostatnich kilku miesięcy osiągnąłeś cel w dowolnym miejscu? Jestem ciekaw, co tam jest. – cytinus

+0

HI, czy wiesz, jak chronić swoje pliki KML? Pracuję nad tym w aplikacji PHP już teraz ... – kiks73

+0

Opcja 3 sugestii Allisone jest wystarczająco dobra, aby chronić plik KML przed łatwym pobieraniem. Pamiętaj, że Google również zapisuje w pamięci podręcznej plik KML, aby go nie załadować na każde żądanie użytkownika! –

Odpowiedz

2

Mam 4 odpowiedzi lub 0 odpowiedzi, w zależności od projektu.

  1. Korzystanie z Google Maps API for Business (~ 10.000 $ rocznie) można wygenerować identyfikator klienta i używać, aby chronić tabela Fusion (może tworzyć Dysku Google), gdzie można zaimportować plik KML i który następnie można wyświetlić za pomocą aplikacji Google Maps Api. Byłoby to idealne rozwiązanie, ale bez Google Maps Api for Business Twoja tablica Fusion nie jest chroniona, więc każdy może uzyskać dostęp do go na Dysku Google i wyświetlić i skopiować i wkleić reprezentację wielokątów Kml .

  2. Korzystanie z Google Maps Engine (/Lite) można zaimportować KML Google oraz (jeśli używasz Lite to najpierw trzeba importować do Google "Moje Mapy" i od wewnątrz Google Maps Engine Lite można wtedy import z "Moich map"). Nie znam ceny za non-lite. Mapę wyszukiwarki Google Maps można udostępnić, aby była widoczna tylko w tej jedynej widocznej wersji. Nie znalazłem sposobu na pobranie lub zobaczenie danych surowego kml, czego byśmy chcieli. Wszystko dobrze, ale jesteś ograniczony do 3 warstw w Maps Engine Lite i nie znalazłem sposobu na zaimportowanie wszystkich moich wielokątów (dzielnic w ) do jednej warstwy na raz. Mogę tylko importować je bit po bicie, jak się wydaje (udało się zaimportować 10 wielokątów z łącznie 353 punktami do jednej warstwy). Każdy import powoduje jedną warstwę, nie może przenosić elementów z jednej warstwy na drugą iz jakiegoś powodu istnieje kilka wielokątów, których nie mogę importować. Edycja:
    Mogę zaimportować wszystkie wielokąty, jeden wielokąt (z powodu algorytmicznego uproszczenia moich wielokątów) otrzymał przecięcie (przekroczenie linii) i jak tylko poprawiłem tę część, import nie powodował już żadnych błędów, ale ja zobacz teraz, że mogę tylko osadzić tę mapę za pomocą elementu iframe zawierającego legendę, więc to rozwiązanie jest dla mnie niczym.

  3. Ogranicza dostęp do pliku KML na serwerze do serwerów Google tylko z białą listą serwerów Google Maps, które mogą żądać Twojego pliku KML . Problem: nie można znaleźć takiej listy w trybie online ... musi najpierw zebrać w jakiś sposób numer .

  4. Również istnieją wpisy na blogach Protecting KML Files from general public access in Google Maps i Protect KML/KMZ Files from Unauthorized Access Using Cryptography

+0

Opcja 3 jest prawdopodobnie najłatwiejszym rozwiązaniem. Ponieważ pliki KML są ładowane przez serwer Google, a nie przez przeglądarkę użytkownika. –

0

Twoje pytanie jest oparte na fałszu bezpieczeństwa komputerowego znanego jako „zabezpieczenia przez zapomnienie”. Błąd jest taki. Mówisz, że nie chcesz, aby została pobrana "łatwo". Możesz zrobić to ciężko, ale tak długo, jak to możliwe, gdy tylko jedna osoba to wymyśli, napisze scenariusz, aby zrobić to automatycznie, a następnie "łatwo". Nie ma odpowiedzi na twoje pytanie, ponieważ jest to niemożliwe. Wszelkie udostępniane treści są pirackie, a wszelkie dane można odtworzyć.

+0

To prawda, że ​​nie ma możliwości, aby dane w 100% zostały publicznie udostępnione. Ale często wystarczająco twardnieje. Czy masz dom? Czy masz ogrodzenie w domu? Ogrodzenie nie zapewnia 100% ochrony, ale uniemożliwia łatwe chodzenie lub robienie czegoś w ogrodzie. –

0

Dlaczego nie wystarczy zapisać plik KML (S) i wyciąć/wkleić na zaszyfrowany hasłem dysku USB, jak Kingston lub KANGURU obrońcy. Następnie otwórz plik kml z dysku USB.

+0

Jest to bardziej obejście problemu i może lepiej pasować do komentarza. – peege

0

możesz sprawdzić zmienną $_SERVER["HTTP_USER_AGENT"], a jeśli pochodzi z google, wygeneruj kml ze strony php.

$agent = "Kml-Google"; 
$google = strpos($_SERVER["HTTP_USER_AGENT"], $agent); 
($google !== FALSE) or die; 
header('Content-Type: application/vnd.google-earth.kml+xml kml'); 
header('Content-Disposition: attachment; filename="otras.kml"'); 
?> 
<?xml version="1.0" encoding="UTF-8"?> 
<kml xml ... 
Powiązane problemy