2010-03-09 14 views
7

Czy ma sens obsłużyć JavaScript? Jedyne wyraźne korzyści, jakie widzę, to ukrywanie kodu (choć niezastrzeżony charakter, ponieważ jest to strona klienta) przed wzrokiem ciekawskich i jako minimalizator, ponieważ często obsfucatorzy Javascript również minimalizują.Czy obsfucation warto?

+2

Tylko jeśli nadal używasz funkcji wstępnego ładowania obrazu Dreamweaver :) – RedFilter

Odpowiedz

9

Nie sądzę, że JavaScript obfuscation jest wart wysiłku dla celów ukrycia w większości ogólnych scenariuszy. Jednak z wielu powodów, o których wspomniałeś, ma również niewielki efekt uboczny zaciemniania kodu.

+0

+1 zgadzam się na zminimalizowanie, ale ja sam nigdy nie napisałem tak dużo kodu ...jeśli masz jakieś średniej wielkości biblioteki całkowicie zgadzam się ... –

1

Cóż, jeśli nie jest to jakiś najnowszy kod javascript, który nie powinien być łatwo kopiowany i odtwarzany, a skrypt nie jest zbyt duży w bajtach, nie zawracałbym sobie głowy. Trochę kłopotów z zaciemnianiem za każdym razem, gdy potrzebujesz deploy, a korzyść jest niewielka.

Oznacza to, że skrypt nie jest zbyt duży, a kod nie jest chroniony.

(nawet zaciemniania naprawdę nie chronić swój kod, po prostu zrobić to odrobinę trudniejsze do zrozumienia)

1

Użyłem YUI Builder, uważam, że to dobre dla zmniejszenia rozmiaru mojego javascript wiele. Tak więc minimalizacja aspektu zaciemniania jest bardzo przydatna sama w sobie.

Pod względem bezpieczeństwa, myślę, że wszystko, co możesz zrobić, aby złośliwemu użytkownikowi trudniej było zorientować się, jak działają twoje rzeczy, tym lepiej.

Na koniec, większość obsakiwaczy wyświetli ostrzeżenia lub błędy, gdy napotka źle napisany javascript i jako całość poprawi również jakość twojego kodu.

Tak w skrócie

Wady: Musisz uruchomić obfuscator

Zalety:

  1. mniejszych plików
  2. trudniej złośliwych użytkowników, aby dowiedzieć się, jak działa rzeczy.
  3. Javascript wyższej jakości (jeśli słuchasz obsfuscatora).
+0

Mam zamiar otworzyć inne pytanie w SO, ponieważ to, co chciałbym zobaczyć jest ISAPI/HttpHandler dla IIS 7, który może zrobić to wszystko w jednym w tym minimalizacja i obsłużenie CSS. Dzięki. –

1

Nie sądzę, że warto, ponieważ każdy, kto jest wystarczająco zmotywowany, aby uzyskać kod, nadal może go uzyskać. Jeśli chodzi o minimalizowanie, nie przejmuję się, ponieważ gzip łagodzi potrzebę tego.

1

Obfuskacja to efekt uboczny minimalizacji. Twoje zmienne, funkcje itp. Są przemianowane na najkrótszą możliwą długość, aby zaoszczędzić miejsce. W przeciwnym razie minimalizatorami byłyby po prostu urządzenia do usuwania białych przestrzeni.

Podczas gdy na pewno można powiedzieć, co robi twój kod, nawet jeśli zostało zaciemnione, będzie to znacznie trudniejsze dla kogoś "niedbale" patrząc na twój kod.

1

Biblioteka Dojo ma komponent o nazwie ShrinkSafe. Spowoduje to skompresowanie pliku JavaScript i trochę zaciemni kod. W ten sposób możesz przechowywać oryginały gdzieś, a następnie zwolnić tylko te, które zostały uruchomione przez ShrinkSafe.