2013-01-02 10 views
6

Nauczyłem się trochę webGL, głównie z użyciem pliku three.js. Załaduję pliki .obj i rysuję je w 3D.Czy można ukryć/zabezpieczyć dane używane w webGL?

mam umieścić swój projekt w Internecie pod coś takiego: www.mydomain.com

Nie przeszkadza mi ludzie patrząc na mojego kodu źródłowego przez ich przeglądarki, ale pliki .obj mam ukazujące się od kogoś kto nie chce ich zdradzić.

Jestem totalną nowicjuszką w tej sprawie.

Ponieważ mój kod źródłowy jest dostępny dla wszystkich użytkowników, przypuszczam, że pliki .obj są również dostępne dla wszystkich. Czy można je ukryć lub zabezpieczyć, aby nikt nie mógł ich pobrać?

+3

Nie, ponieważ po pobraniu tych plików do komputera klienta są one już pobierane ... – 11684

+1

Twoja jedyna szansa to prawdopodobnie zaciemnienie itp. – 11684

Odpowiedz

7

Jestem prawie pewien, że nie można zabezpieczyć żadnych plików, jeśli chcesz uzyskać do nich dostęp i używać ich w JavaScript/WebGL. Muszą one zostać sparsowane do użytecznego formatu, aby przeglądarka/javascript mogła je wyświetlić. Dostępne są dwie opcje:

1) Obfuskacja. Nie sądzę, że jest to bardzo dobra opcja, ponieważ w końcu ktoś może zawsze używać Firebug i innych narzędzi, aby uzyskać dostęp do nieco użytecznej reprezentacji twoich plików. Możesz uczynić to nieco trudniejszym do wykonania poprzez szyfrowanie lub szyfrowanie danych po stronie serwera i rekonstruowanie rzeczy w JavaScript. Lub po prostu za pomocą niekonwencjonalnych sposobów ładowania i reprezentowania plików.

Można również dokonać dekodowania/odszyfrowania w kodzie modułu cieniującego, który byłby o jeden krok trudniejszy do kradzieży. Ale to prawdopodobnie dotyczy tylko tekstur.

2) Pliki będą mniej przydatne. Aby ktoś mógł ponownie wykorzystać twoje pliki OBJ, prawdopodobnie chce zaimportować modele do wybranego przez siebie oprogramowania i zrobić coś. Nie można temu zapobiec, ale można usunąć pliki dodatkowych informacji, które ułatwiają pracę z plikami. Dzięki temu pliki będą mniej pożądane dla potencjalnych złodziei.

Robię to z zupełnie innych powodów, ale moim głównym zastosowaniem WebGL jest eksportowanie modeli z Sketchup do Collady i wyświetlanie ich w WebGL. Mój kod eksportu robi pewne rzeczy, które jako efekt uboczny sprawiają, że wywożony model jest trudny do pracy. Obejmuje to unikanie wszystkich wystąpień komponentów (usuwanie instancji?), Eksplodowanie wszystkich komponentów i grup do zwykłej geometrii, triangulację wszystkich ścian, usuwanie ukrytej geometrii itp.

Może to być PITA, aby przywrócić ją do Sketchup do edycji bez Oryginalny plik ... specjalnie dlatego, że modele, z którymi pracuję, z natury mocno zależą od instancji składnika i grupy. Jednak nic nie stoi na przeszkodzie, by ktoś ukradł geometrię "tak jak jest".

2

Jeśli dana osoba może zostać pobrana z przeglądarki, to jest na komputerze użytkownika.

Możesz utrudniać czytanie plików, ale spowolni to pobieranie danych .obj. Jeśli ktoś chce to zrobić, może w końcu to zrobić. Klucz odszyfrowywania musi zawsze znajdować się na komputerze klienckim. Więc możesz tylko spowolnić proces. Pytanie brzmi: "Jak trudno i jak skomplikowany chcesz stworzyć swój kod .obj i czy jest to warte wysiłku?" Po prostu dodanie jednego dodatkowego bajtu na początku pliku prawdopodobnie wystarczy, aby pliki nie były otwierane tak, jak w oprogramowaniu do modelowania.

Proponuję, abyś nauczył kogoś, jak działa internet, i po prostu powiedział, że nie jest to możliwe lub warto próbować tego zrobić, i oszczędzić sobie wymyślania implementacji homebrew, aby utrudnić czytanie danych.

2

Zobacz inne odpowiedzi, ale nie dotyczy to tylko WebGL. DOWOLNY program w DOWOLNYM języku ma ten problem. Gdy dane znajdują się na komputerze użytkownika, telefonie itp., Ludzie mogą uzyskać dane. Przykłady:

  1. reading an iOS app's data
  2. reading a native PC app's data

Z drugiej strony można śledzić techniki wymienionych powyżej. Użyj własnego formatu. Masuj dane tak, aby były najlepsze dla renderowania, co zwykle utrudnia edytowanie.

Możesz również, oczywiście, sprawić, że Twoje pliki wymagają, aby ktoś zalogował się na Twojej stronie, aby przeczytać je w pierwszej kolejności, podobnie jak Gmail, Facebook, Google Docs itp. Wymagają zalogowania. To nie przeszkodzi im zdobyć plików, gdy się zarejestrują, ale. You can also setup your server so only your app can download the files. Ponownie, nie uniemożliwi to użytkownikowi pobierania plików po ich pobraniu (lub wstrzyknięciu kodu JavaScript za pośrednictwem rozszerzenia przeglądarki), ale zapobiegnie to kradzieży przepustowości z innych witryn bezpośrednio łączących się z danymi.