Dobre praktyki
Jak skutecznie stosować obfuskację - co chronić, czego nie ruszać i czego obfuskacja nie jest w stanie za Ciebie zrobić.
Zalecenia
Obfuskuj wyłącznie własny kod.
Nie należy obejmować obfuskacją VM skryptów zewnętrznych, bibliotek ani polyfilli. Są już zminifikowane, a obfuskacja jedynie je spowolni.
Do precyzyjnej ochrony używaj trybu komentarza.
Zamiast chronić wszystko, warto oznaczyć komentarzem
/* javascript-obfuscator:vm */tylko wrażliwe funkcje.Testuj dokładnie po obfuskacji.
Zobfuskowany kod należy zawsze przetestować w docelowym środowisku. Niektóre opcje potrafią zepsuć kod w subtelny sposób.
Wyłącz często wykonywane ścieżki kodu z obfuskacji VM.
Dla pętli animacji, renderowania w czasie rzeczywistym oraz często wywoływanego kodu należy użyć
vmExcludeFunctions.
Ważna uwaga dotycząca bezpieczeństwa
Obfuskacja utrudnia inżynierię wsteczną, ale nie jest szyfrowaniem. Zdeterminowany atakujący zawsze może wydobyć dane z kodu działającego po stronie klienta.
Zamiast tego należy:
- przechowywać sekrety na serwerze zaplecza,
- korzystać ze zmiennych środowiskowych po stronie serwera,
- kierować wywołania API przez własny backend, aby ukryć klucze,
- używać krótkotrwałych tokenów wydawanych przez serwer.
Co warto chronić?
Obfuskacja VM sprawdza się idealnie w przypadku:
- własnych algorytmów i logiki biznesowej,
- kodu weryfikującego licencje (kontrole po stronie klienta),
- zabezpieczeń przed manipulacją i kontroli integralności,
- logiki gier oraz mechanizmów antycheatowych,
- implementacji funkcji premium,
- logiki wyliczania cen.
