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?
Odpowiedz
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.
+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ę ... –
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)
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:
- mniejszych plików
- trudniej złośliwych użytkowników, aby dowiedzieć się, jak działa rzeczy.
- Javascript wyższej jakości (jeśli słuchasz obsfuscatora).
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. –
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.
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.
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.
- 1. Czy warto wypróbować MonetDB?
- 2. Czy warto używać generycznych wyjątków?
- 3. Czy warto buforować instancje DataContractSerializer?
- 4. Czy warto ignorować typ skryptu?
- 5. Czy warto gzip plików js?
- 6. Czy warto używać list asocjacyjnych zamiast rekordów?
- 7. Czy warto używać OOP w PHP?
- 8. Czy warto uczyć się haml & sass?
- 9. Czy warto szablonować w oparciu o wyliczenia?
- 10. Czy warto zaindeksować pole datetime w mysql?
- 11. Czy warto napisać XHTML Strict markup?
- 12. GWT i Spring MVC, czy warto?
- 13. czy nadal warto wspierać ios 3.1?
- 14. Android anti-crack, czy warto to robić?
- 15. Czy warto używać super() w Pythonie?
- 16. CSP style-src: "unsafe-inline" - czy warto?
- 17. Czy warto używać Debug.Assert w ASP.NET?
- 18. Czy warto kierować profil klienta .NET?
- 19. Czy warto używać LINQ do zastępowania pętli?
- 20. Czy warto przechwytywać AssertionError w testach JUnit?
- 21. Czy warto zamknąć pliki w małych funkcjach?
- 22. Czy struktury CSS naprawdę warto używać?
- 23. Czy warto włączyć dynamiczną kompresję w IIS7?
- 24. Czy warto usunąć myślnik z identyfikatora GUID?
- 25. Czy warto się nauczyć Ruby On Rails
- 26. jQuery UI + ASP.NET UpdatePanel - czy warto?
- 27. Dlaczego warto blokować wątki?
- 28. Dlaczego warto używać NSAutoreleasePool?
- 29. Dlaczego warto używać Gradle?
- 30. Dlaczego warto używać shm_open?
Tylko jeśli nadal używasz funkcji wstępnego ładowania obrazu Dreamweaver :) – RedFilter