Najczęściej zadawane pytania
Pytania ogólne
Częste pytania o obfuskację JavaScriptu i sposób jej działania.
Powodów do ochrony kodu jest wiele: uniemożliwienie zwykłego kopiowania Twojej pracy (szczególnie ważne w projektach po stronie klienta, takich jak gry HTML5), utrudnienie zrozumienia i modyfikacji kodu oraz ochrona pracy, za którą nie otrzymano jeszcze zapłaty, tak aby można było pokazać klientowi działający build bez przekazywania kodu źródłowego.
Standardowa obfuskacja przepisuje kod JavaScript na trudniejszy do odczytania JavaScript: nazwy są zastępowane, ciągi znaków przenoszone i kodowane, a przepływ sterowania przebudowywany, ale wynik nadal jest JavaScriptem, który można krokowo wykonywać w debuggerze. Obfuskacja VM (maszyny wirtualnej) kompiluje ciała Twoich funkcji do niestandardowego kodu bajtowego i dołącza osadzony interpreter, który go wykonuje, więc chroniona logika nie istnieje już jako JavaScript. Które funkcje są objęte ochroną i jak je wybrać, opisuje Obfuskacja VM.
Tak. Ustaw vmTargetFunctionsMode na comment, a następnie oznacz każdą funkcję do ochrony komentarzem /* javascript-obfuscator:vm */. Zachowaj te komentarze w każdym kroku builda wykonywanym przed obfuskacją. Zobacz Wskazywanie konkretnych funkcji.
Nie. Kluczy API, sekretów ani danych uwierzytelniających NIGDY nie wolno przechowywać w kodzie front-endu. Nawet przy najwyższym poziomie obfuskacji zdeterminowany atakujący może wydobyć dowolne dane z kodu JavaScript działającego po stronie klienta. Obfuskacja utrudnia inżynierię wsteczną, ale nie jest szyfrowaniem i nie należy na niej polegać przy zabezpieczaniu sekretów. Zamiast tego przechowuj sekrety na serwerze zaplecza, korzystaj ze zmiennych środowiskowych po stronie serwera, kieruj wywołania API przez własny backend, aby ukryć klucze, lub używaj krótkotrwałych tokenów wydawanych przez serwer.
Obfuskacja zwiększa wysiłek potrzebny do zrozumienia i zmiany kodu, niezależnie od tego, czy analizę prowadzi człowiek, narzędzie czy asystent AI, lecz nie gwarantuje niemożliwości inżynierii wstecznej. Działanie pozostaje obserwowalne w środowisku kontrolowanym przez atakującego. Sekrety i wiążące decyzje bezpieczeństwa pozostaw na serwerze. Jak VM przekształca kod.
Najpierw wyklucz zabezpieczenia działające w czasie wykonania. VM Self Defending i VM Debug Protection celowo przerywają działanie pod narzędziami automatyzacji, w przeglądarkach headless i pod debuggerem, a także gdy target nie pasuje do rzeczywistego środowiska, dlatego testy funkcjonalne uruchamiaj na osobnym buildzie testowym z wyłączonymi zabezpieczeniami. Jeśli i ten build nie działa, zawęź problem za pomocą vmTargetFunctionsMode: 'comment', wirtualizując po jednej funkcji. Przewodnik rozwiązywania problemów opisuje każdy krok i to, co dołączyć do zgłoszenia błędu.
Obfuskator dodaje kod: identyfikatory otrzymują generowane nazwy, ciągi znaków trafiają do tablicy ciągów (opcjonalnie zakodowanej) wraz z funkcjami dostępu, a przy obfuskacji VM do kodu bajtowego dołączany jest cały interpreter maszyny wirtualnej. Nie przejmuj się zbytnio rozmiarem - zobfuskowany kod dobrze kompresuje się algorytmem gzip lub Brotli, który większość serwerów ma domyślnie włączony.
Cięższe presety mogą zwiększać rozmiar wyniku i czas wykonania. Mierz czas uruchamiania, często wykonywane ścieżki i skompresowany rozmiar własnego pakietu zamiast polegać na stałych mnożnikach spowolnienia. Dokumentacja opcji · Dobre praktyki
Nie. Przepisanie wyniku może go zepsuć, zwłaszcza przy Self Defending lub VM Self Defending, które wykrywają zmiany w kodzie. Minifikator możesz uruchomić przed obfuskacją, o ile zachowuje komentarze javascript-obfuscator, takie jak /* javascript-obfuscator:vm */.
Nie przechowujemy Twojego kodu źródłowego. Podstawowa obfuskacja JavaScriptu działa w przeglądarce. Obfuskacja VM i HTML wysyła kod źródłowy na nasze serwery, które go przetwarzają i odrzucają; gdy żądanie przekracza 4.4 MB, plany Team i Business przesyłają je do tymczasowego magazynu, który jest usuwany po przetworzeniu. Na potrzeby przeciwdziałania nadużyciom i analizy korzystania z usługi przez trzy miesiące przechowujemy skrót SHA-256 każdego zobfuskowanego wyniku oraz niektóre użyte ustawienia (takie jak preset, target i zabezpieczenia VM), nigdy sam kod ani żadną jego treść. Historia panelu jest przechowywana wyłącznie w Twojej przeglądarce; zarządzaj nią w Historii.
Nie. Obfuskator nie zachowuje Twoich oryginalnych nazw, komentarzy ani formatowania, więc wyniku nie da się z powrotem zamienić w kod źródłowy. Nie jest to gwarancja bezpieczeństwa (zobacz pytanie o deobfuskację powyżej), ale oznacza, że musisz przechowywać oryginał w bezpiecznym miejscu.
Tak. W opcjach obfuskacji możesz wybrać „Node” jako środowisko docelowe, aby zoptymalizować wynik pod kątem środowiska Node.js.
Obsługa obejmuje składnię ES2015+, async/await, optional chaining i prywatne pola klas; nowszą składnię sprawdź w wybranej wersji obfuskatora. Przed obfuskacją skompiluj TypeScript i JSX oraz zbuduj bundle aplikacji - zobacz Zgodność środowiska. Pliki HTML są obsługiwane przez parseHtml; zobacz Obfuskacja HTML.
Zobfuskowany wynik - wraz z interpreterem VM i warstwą Self Defending - jest aktywnie wspierany i testowany w stale aktualizowanych przeglądarkach desktopowych oraz w systemie iOS 16+ (mniej więcej ostatnie 4 lata). Starsze przeglądarki są obsługiwane w miarę możliwości, aż do twardej granicy, jaką jest wsparcie modułów ES2015; wszystko poniżej, w tym Internet Explorer, pozostaje poza zakresem wsparcia.
Sprawdź nasze plany cenowe z ochroną VM albo wypróbuj darmową piaskownicę online ze standardową obfuskacją. Pełne omówienie znajdziesz w przewodniku pierwszych kroków.
Cennik i konto
Pytania o plany, rozliczenia i limity zużycia.
Zużycie jest mierzone rozmiarem wejściowego kodu źródłowego w bajtach. Każde zadanie obfuskacji jest naliczane minimalnie jako 0,1 MB (102 400 bajtów), aby zapewnić sprawiedliwy podział zasobów. Na przykład obfuskacja pliku o rozmiarze 50 KB zostanie zaliczona do limitu jako 0,1 MB. Pliki większe niż 0,1 MB są naliczane według rzeczywistego rozmiaru.
Po wyczerpaniu limitu obfuskacji VM możesz nadal bezpłatnie i bez ograniczeń korzystać ze standardowej obfuskacji (w przeglądarce). W planach płatnych limit VM odnawia się co miesiąc, w miesięczną rocznicę rozpoczęcia subskrypcji, również w planach rocznych. Plan Free ma limit dożywotni, który się nie odnawia. W planach z dziennym limitem VM po jego osiągnięciu możesz ponownie obfuskować z VM następnego dnia. W dowolnym momencie możesz przejść na wyższy plan, aby zwiększyć limit obfuskacji VM.
Tak, plan możesz zmienić na wyższy lub niższy w dowolnym momencie. Przy przejściu na wyższy plan naliczymy kwotę proporcjonalną do pozostałej części okresu rozliczeniowego. Przy przejściu na niższy plan nowa cena obowiązuje od kolejnego okresu rozliczeniowego.
Subskrypcję możesz anulować w dowolnym momencie. Dostęp do swojego planu zachowasz do końca bieżącego okresu rozliczeniowego. Zwracamy uwagę, że nie zwracamy środków za niepełne okresy rozliczeniowe ani za niewykorzystany czas.
Akceptujemy wszystkie najpopularniejsze karty kredytowe (Visa, Mastercard, American Express) oraz karty debetowe za pośrednictwem naszego bezpiecznego operatora płatności Stripe. Wszystkie transakcje są szyfrowane i zgodne ze standardem PCI.
