Przejdź do treści
Bezpieczeństwo

Obfuskacja JavaScriptu

Opublikowano:
Aktualizacja:

Obfuskacja JavaScriptu zmienia nazwy, stringi lub strukturę kodu, aby utrudnić szybkie zrozumienie pliku. Jest tarciem przeciw przypadkowemu kopiowaniu i prostemu scrapingowi, ale kod nadal musi zostać dostarczony i wykonany w przeglądarce.

Hasła, prywatne klucze API i reguły autoryzacji należą na backend. Publiczne identyfikatory lub klucze publishable mogą występować w przeglądarce zgodnie z modelem dostawcy, z właściwymi ograniczeniami. Obfuskacja nie zmienia tego modelu bezpieczeństwa.

Obfuskacja a szyfrowanie

Szyfrowanie wymaga klucza i ma chronić poufność danych. Obfuskacja utrudnia czytanie, ale nie daje poufności: użytkownik może pobrać kod, uruchomić go w DevTools i analizować jego zachowanie.

Kiedy ma sens?

  • Utrudnienie kopiowania prostych fragmentów logiki biznesowej.
  • Zmniejszenie czytelności kodu biblioteki dostarczanej klientowi.
  • Ograniczenie prostego scrapingu, przy zachowaniu świadomości, że nie jest to pełna ochrona.
  • Usunięcie logów debugowych przed publikacją, jeśli pipeline robi to bezpiecznie.

Czego nie robić

  • Nie umieszczaj sekretów w JavaScripcie tylko dlatego, że kod jest obfuskowany.
  • Nie używaj obfuskacji do ukrywania złośliwego kodu lub trackerów.
  • Nie zakładaj, że obfuskacja zastąpi autoryzację po stronie serwera.
  • Zmierz rozmiar i czas wykonania — cięższy kod może pogorszyć wydajność.

Przykład i kontrola regresji

Zmiana calculateTotal na a utrudnia odczyt nazwy, ale wejście i wynik nadal widać w runtime. Publiczna mapa źródeł może ujawnić oryginalny kod. Po transformacji porównaj kluczowe ścieżki, błędy CSP, rozmiar i czas wykonania; zachowaj prywatne mapy do diagnozowania błędów.

Zmiana nazwy nie ukrywa wyniku
JavaScript
function calculateTotal(price, count) { return price * count; }
// ↓
function a(b, c) { return b * c; }

Źródła i dalsza lektura

Sprawdź bezpieczeństwo całej strony

Obfuskacja jest tylko tarciem dla analizy kodu klienta. Insight pomaga znaleźć publiczne sygnały ryzyka do dalszej weryfikacji.