Jak mogę zaciemniać (chronić) JavaScript? [zamknięte]

Chcę stworzyć aplikację JavaScript, która nie jest open source, a więc chcę dowiedzieć się, jak można zaciemnić mój kod JS? Czy to możliwe?

Author: Chuck Le Butt, 2008-10-11

24 answers

Zaciemnienie:

Try kompresor YUI. Jest to bardzo popularne narzędzie, zbudowane, ulepszone i utrzymywane przez zespół Yahoo UI.

Możesz również użyć:

Prywatne Dane Ciągów:

Zachowanie prywatnych wartości łańcuchów to inna sprawa, a zaciemnianie nie przyniesie większych korzyści. Oczywiście, pakując swoje źródło w zniekształcony, minifigurowany bałagan, masz lekką wersję Bezpieczeństwa poprzez obscurity . Przez większość czasu to twój użytkownik przegląda źródło, a wartości łańcuchowe na kliencie są przeznaczone do ich użycia, więc tego rodzaju prywatna wartość łańcuchowa nie jest często konieczna.

Jeśli naprawdę miał wartość, że nigdy nie chciał użytkownik zobaczyć, masz kilka opcji. Po pierwsze, możesz wykonać jakieś szyfrowanie, które jest odszyfrowywane przy ładowaniu strony. To byłby prawdopodobnie jeden z najbezpieczniejsze opcje, ale także dużo pracy, która może być niepotrzebna. Prawdopodobnie mógłbyś w base64 zakodować niektóre wartości łańcuchowe, a to byłoby łatwiejsze.. ale ktoś, kto naprawdę chciał te wartości łańcuchów mógłby łatwo je dekodować . Szyfrowanie jest jedynym sposobem, aby naprawdę uniemożliwić nikomu dostęp do Twoich danych, a większość ludzi uważa, że jest to większe bezpieczeństwo, niż potrzebują.

Sidenote:

Zaciemnianie w Javascript jest znane z powodowania błędów. Na zaciemnianie staje się coraz lepsze, ale wiele strojów decyduje, że widzą wystarczająco dużo korzyści z minifuscacji i gzippingu , a dodatkowe oszczędności zaciemniania nie zawsze są warte zachodu . Jeśli próbujesz chronić swoje źródło, może zdecydujesz, że jest to warte twojego czasu, tylko po to, aby Kod był trudniejszy do odczytania. JSMin to dobra alternatywa.

 388
Author: keparo,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-08-06 23:01:07

Dziwię się, że nikt nie wspomniał o kompilatorze Google . Nie tylko minifikuje/kompresuje, ale analizuje, aby znaleźć i usunąć NIEUŻYWANY KOD, a także przepisuje go w celu maksymalnej minifikacji. Może również sprawdzać typ i ostrzegać o błędach składniowych.

[[0]} JQuery ostatnio przesiadł się z kompresora YUI na kompilator Closure i zobaczył "solidną poprawę "
 129
Author: Jason Hall,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-04-17 15:14:49

Zaciemnianie nigdy nie działa. Dla każdego, kto naprawdę chce dostać się do kodu, to tylko ograniczenie prędkości. Co gorsza, uniemożliwia to użytkownikom naprawianie błędów (i wysyłanie poprawek z powrotem do Ciebie) i utrudnia diagnozowanie problemów w terenie. To strata czasu i pieniędzy.

Porozmawiaj z prawnikiem o prawie własności intelektualnej i jakie są Twoje opcje prawne. "Open Source" nie oznacza "ludzie mogą czytać źródło". Zamiast tego Open Source jest szczególnym model licencjonowania uprawniający do swobodnego używania i modyfikowania kodu. Jeśli nie udzielisz takiej licencji, ludzie kopiujący Twój kod będą łamać prawa i (w większości krajów świata) masz legalne opcje, aby je zatrzymać.

Jedynym sposobem na ochronę kodu jest nie wysyłanie go. Przenieś ważny kod po stronie serwera i niech twój publiczny kod Javascript wywoła do niego Ajax.

Zobacz moją pełną odpowiedź na temat zaciemniaczy tutaj.

 115
Author: Schwern,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 12:18:28

Możesz zaciemniać źródło javascript, ile chcesz, ale zawsze będzie to możliwe do odwrócenia, ponieważ wymaga to, aby cały kod źródłowy działał na komputerze klienckim... najlepszą opcją, jaką mogę wymyślić, jest to, że całe przetwarzanie odbywa się za pomocą kodu po stronie serwera, a cały kod klienta robi javascript, to wysyłanie żądań do przetwarzania na sam serwer. W przeciwnym razie każdy będzie zawsze w stanie śledzić wszystkie operacje wykonywane przez kod.

Ktoś wspomniał base64, aby zapewnić bezpieczeństwo strun. To okropny pomysł. Base64 jest natychmiast rozpoznawalny po typach ludzi, którzy chcieliby inżynierii wstecznej kodu. Pierwszą rzeczą, którą zrobią, to odinstalować i zobaczyć, co to jest.

 50
Author: Claudiu,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-01-11 09:50:19

Istnieje wiele narzędzi zaciemniania JavaScript, które są swobodnie dostępne; jednak myślę, że ważne jest, aby pamiętać, że trudno jest zaciemniać JavaScript do punktu, w którym nie można go odwrócić.

W tym celu jest kilka opcji, które w pewnym stopniu wykorzystałem:

  • Kompresor YUI . Yahoo!'s sprężarka JavaScript robi dobrą robotę kondensacji kodu, który poprawi jego czas ładowania. Istnieje niewielki poziom zaciemnienie, które działa stosunkowo dobrze. Zasadniczo, Kompresor zmieni nazwy funkcji, usunie białe spacje i zmodyfikuje zmienne lokalne. To jest to, czego używam najczęściej. Jest to narzędzie open-source oparte na Javie.

  • JSMin to narzędzie napisane przez Douglasa Crockforda, które ma na celu zminimalizowanie Źródła JavaScript. W słowach Crockforda: "JSMin nie zaciemnia, ale brzydoli."Głównym celem jest zminimalizowanie rozmiaru źródła w celu szybszego ładowania w przeglądarki.

  • Darmowy Obfuscator JavaScript . Jest to narzędzie internetowe, które próbuje zaciemnić kod, kodując go. Myślę, że kompromisy w postaci kodowania (lub zaciemniania) mogą się odbywać kosztem rozmiaru pliku; Jednak jest to kwestia osobistych preferencji.

 44
Author: Tom,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-10-11 18:26:52

Co bym zrobił:

A. Troll haker!

To będzie w drugiej części mój fałszywy / zaciemniony tajny LAUNCHER kodu javascript. Ten, który widzisz w kodzie źródłowym.

Co to za Kod?

  1. wczytuje prawdziwy kod
  2. ustawia niestandardowy nagłówek
  3. posts a custom variable

var ajax=function(a,b,d,c,e,f){
 e=new FormData();
 for(f in d){e.append(f,d[f]);};
 c=new XMLHttpRequest();
 c.open('POST',a);
 c.setRequestHeader("Troll1","lol");
 c.onload=b;
 c.send(e);
};
window.onload=function(){
 ajax('Troll.php',function(){
  (new Function(atob(this.response)))()
 },{'Troll2':'lol'});
}

B. zaciemnij trochę kod

Co to jest?
  1. to ten sam kod jak powyżej in base64
  2. to nie jest tajny kod javascript

(new Function(atob('dmFyIGFqYXg9ZnVuY3Rpb24oYSxiLGQsYyxlLGYpe2U9bmV3IEZvcm1EYXRhKCk7Zm9yKGYgaW4gZCl7ZS5hcHBlbmQoZixkW2ZdKTt9O2M9bmV3IFhNTEh0dHBSZXF1ZXN0KCk7Yy5vcGVuKCdQT1NUJyxhKTtjLnNldFJlcXVlc3RIZWFkZXIoIlRyb2xsMSIsImxvbCIpO2Mub25sb2FkPWI7Yy5zZW5kKGUpO307d2luZG93Lm9ubG9hZD1mdW5jdGlvbigpe2FqYXgoJ1Ryb2xsLnBocCcsZnVuY3Rpb24oKXsgKG5ldyBGdW5jdGlvbihhdG9iKHRoaXMucmVzcG9uc2UpKSkoKX0seydUcm9sbDInOidsb2wnfSk7fQ==')))()

C Tworzenie trudnego do wyświetlenia pliku php z rzeczywistym kodem wewnątrz

Co robi ten kod php?

    W tym celu należy skontaktować się z Działem obsługi klienta.]}
  1. sprawdza niestandardowy nagłówek
  2. sprawdza zmienną niestandardową POST

Jeśli wszystko jest ok pokaże ci właściwy kod, inny fałszywy kod lub ban ip, zamknij stronę.. nieważne.

<?php
$t1=apache_request_headers();
if(base64_encode($_SERVER['HTTP_REFERER'])=='aHR0cDovL2hlcmUuaXMvbXkvbGF1bmNoZXIuaHRtbA=='&&$_POST['Troll2']=='lol'&&$t1['Troll1']='lol'){
 echo 'ZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKSkuaW5uZXJUZXh0PSdBd2Vzb21lJzsNCg==';//here is the SECRET javascript code
}else{
 echo 'd2luZG93Lm9wZW4oJycsICdfc2VsZicsICcnKTt3aW5kb3cuY2xvc2UoKTs=';
};
?>

Base64 referrer = http://here.is/my/launcher.html

SECRET javascript = document.body.appendChild(document.createElement('div')).innerText='Awesome';

FAKE = window.open('', '_self', '');window.close();

Teraz .. jeśli zdefiniujesz procedury obsługi zdarzeń w tajnym javascript, prawdopodobnie będzie to dostępne.. musisz zdefiniować je na zewnątrz za pomocą kodu uruchamiania i wskazać zagnieżdżoną tajną funkcję.

Więc... czy istnieje łatwy sposób na uzyskanie kodu? document.body.appendChild(document.createElement('div')).innerText='Awesome';

Nie wiem czy to działa ale używam chrome i sprawdzam Elementy, zasoby, sieć, Źródła,oś czasu,profile, audyty, ale nie znalazłem linii powyżej.

Note1: if u open the Troll.PHP url z Inspect element- > network w chrome dostajesz fałszywy kod.

Note2: cały kod jest napisany dla nowoczesnych przeglądarek. polyfill potrzebuje dużo więcej kodu.

EDIT

Launcher.html

<!doctype html><html><head><meta charset="utf-8"><title></title><script src="data:application/javascript;base64,KG5ldyBGdW5jdGlvbihhdG9iKCdkbUZ5SUdGcVlYZzlablZ1WTNScGIyNG9ZU3hpTEdRc1l5eGxMR1lwZTJVOWJtVjNJRVp2Y20xRVlYUmhLQ2s3Wm05eUtHWWdhVzRnWkNsN1pTNWhjSEJsYm1Rb1ppeGtXMlpkS1R0OU8yTTlibVYzSUZoTlRFaDBkSEJTWlhGMVpYTjBLQ2s3WXk1dmNHVnVLQ2RRVDFOVUp5eGhLVHRqTG5ObGRGSmxjWFZsYzNSSVpXRmtaWElvSWxSeWIyeHNNU0lzSW14dmJDSXBPMk11YjI1c2IyRmtQV0k3WXk1elpXNWtLR1VwTzMwN2QybHVaRzkzTG05dWJHOWhaRDFtZFc1amRHbHZiaWdwZTJGcVlYZ29KMVJ5YjJ4c0xuQm9jQ2NzWm5WdVkzUnBiMjRvS1hzZ0tHNWxkeUJHZFc1amRHbHZiaWhoZEc5aUtIUm9hWE11Y21WemNHOXVjMlVwS1Nrb0tYMHNleWRVY205c2JESW5PaWRzYjJ3bmZTazdmUT09JykpKSgp"></script></head><body></body></html>
Troll.php
<?php $t1=apache_request_headers();if(/*base64_encode($_SERVER['HTTP_REFERER'])=='PUT THE LAUNCHER REFERER HERE'&&*/$_POST['Troll2']=='lol'&&$t1['Troll1']='lol'){echo 'ZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKSkuaW5uZXJUZXh0PSdBd2Vzb21lJzsNCg==';}else{echo 'd2luZG93Lm9wZW4oJycsICdfc2VsZicsICcnKTt3aW5kb3cuY2xvc2UoKTs=';}; ?>
 22
Author: cocco,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-07-04 12:16:16

Spróbuj JScrambler . Ostatnio się zakręciłem i byłem pod wrażeniem. Zapewnia zestaw szablonów do maskowania z predefiniowanymi ustawieniami dla tych, którzy nie dbają o szczegóły i chcą szybko to zrobić. Możesz również utworzyć niestandardowe zaciemnianie, wybierając dowolne przekształcenia/techniki.

 18
Author: Anthony,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-03-31 01:21:55

Problem z językami interpretowanymi polega na tym, że wysyłasz źródło, aby je uruchomić (chyba że masz kompilator do kodu bajtowego, ale z drugiej strony dekompilacja jest dość trywialna).

Więc jeśli nie chcesz poświęcać wydajności, możesz działać tylko na nazwach zmiennych i funkcji, np. zastąpienie ich przez a, b... aa, ab... lub a101, A102 itp. I oczywiście usuń jak najwięcej miejsca/nowych linii, jak możesz(tak robią tzw. sprężarki JS).
Zaciemniające struny będą miały wydajność hit, jeśli trzeba je zaszyfrować i odszyfrować je w czasie rzeczywistym. Plus debugger JS może pokazać końcowe wartości...

 17
Author: PhiLho,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-10-11 18:23:36

W przeciwieństwie do większości innych odpowiedzi proponuję przeciw Yui Compressor; powinieneś użyć Google Closure .

Nie wiele, ponieważ kompresuje więcej, ale głównie dlatego, że wychwytuje błędy javascript, takie jak a = [1,2,3,];, które sprawiają, że IE go haywire.

 17
Author: Andreas Bonini,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-10-06 20:24:08

Aplikacja nie-open-source oparta na Javascript jest dość głupia. Javascript jest językiem interpretowanym po stronie klienta.. Zaciemnienie nie jest ochroną..

Maskowanie JS jest zwykle wykonywane w celu zmniejszenia rozmiaru skryptu, a nie "Ochrony" go. Jeśli jesteś w sytuacji, w której nie chcesz, aby Twój kod był publiczny, Javascript nie jest właściwym językiem..

Istnieje wiele narzędzi wokół, ale większość ma słowo "kompresor" (lub "minifier") w nazwie nie bez powodu..

 13
Author: dbr,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-10-12 05:44:51

Nie możesz zabezpieczyć kodu po stronie klienta: po prostu naciśnij F12 w Google Chrome, Wstrzymaj wykonywanie javascript, a otrzymasz wszystkie ciągi, nawet te zaszyfrowane. Beautify it and rename variables and you will get almost the original code.

Jeśli piszesz JavaScript po stronie serwera (np. NodeJS) boisz się, że ktoś włamie się na twój serwer i chcesz utrudnić hakerowi pracę, dając Ci więcej czasu na odzyskanie dostępu, użyj javacript Kompilatory :

Musisz użyć Closure Compiler na zaawansowanej kompilacji, ponieważ jest to jedyne narzędzie, które zmienia nazwy wszystkich zmiennych, nawet jeśli są one używane w wielu plikach / modułach. Ale ma tylko problem: działa tylko wtedy, gdy piszesz w stylu kodowania .

 11
Author: Gustavo Rodrigues,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-01-02 23:56:01

Mogę polecić JavaScript Utility autorstwa Patricka J. O ' Neila. Może zaciemniać / kompresować i kompresować i wydaje się być w tym całkiem dobry. To powiedziawszy, nigdy nie próbowałem zintegrować go w skrypcie budowania jakiegokolwiek rodzaju.

Co do obfuscating vs. minifusing - nie jestem wielkim fanem tego pierwszego. Uniemożliwia debugowanie (błąd w linii 1... "czekaj, jest tylko jedna linijka" ) i zawsze potrzebują czasu na rozpakowanie. Ale jeśli trzeba... cóż.

 11
Author: Tsvetomir Tsonev,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-04-23 12:32:32

Pakowacz Deana Edwarda jest doskonałym zaciemniaczem, chociaż przede wszystkim zaciemnia kod, a nie Elementy ciągu znaków, które możesz mieć w swoim kodzie.

Zobacz: Online Javascript Compression Tool i wybierz Packer (Dean Edwards) z listy rozwijanej

 5
Author: smdrager,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-01-28 02:41:12

Proponuję najpierw minify z czymś takim jak Yui Compressor, a następnie przekonwertować wszystkie ciągi i liczby na wartości szesnastkowe używając czegoś takiego jak http://www.javascriptobfuscator.com/

Dzięki temu Kod stałby się prawie niemożliwy do zrozumienia i myślę, że na tym etapie haker zajmie więcej czasu, aby ponownie wprowadzić Twój kod, niż w rzeczywistości, gdyby przepisał go od zera. Przepisywanie i klonowanie jest tym, czego nie możesz powstrzymać. Przecież jesteśmy wolnymi ludźmi !

 4
Author: Dynamite Blitzer,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-04-15 23:27:39

Używam Jasob od lat i jest to najlepszy obfuscator na świecie.
Ma zaawansowany interfejs użytkownika, ale nadal jest intuicyjny i łatwy w użyciu.
Będzie również obsługiwać pliki HTML i CSS.

Najlepszym sposobem jej użycia jest dodanie przedrostka do wszystkich prywatnych zmiennych z podkreśleniem, a następnie użycie funkcji sort do grupowania ich wszystkich razem i zaznaczenie jako celów zaciemnienia.

Użytkownicy mogą nadal wyświetlać swoje źródło, ale jest to o wiele trudniejsze do odszyfrowania, gdy prywatne zmienne są konwertowane z czegoś takiego jak _sUserPreferredNickName do a.

Silnik automatycznie przeliczy liczbę docelowych zmiennych i nada im priorytet, aby uzyskać maksymalną kompresję.

Nie pracuję dla Jasoba i nie mam nic z ich promowania, tylko oferuję przyjacielskie Rady.
Minusem jest to, że nie jest za darmo i jest trochę drogie, ale nadal warto, gdy ułożone przeciwko alternatywom - "za darmo" opcje nawet się nie zbliżają.
 4
Author: Matt,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-01-01 08:19:50

Próbowałeś Bananascript ? Tworzy wysoce skompresowany i całkowicie nieczytelny kod.

 4
Author: niutech,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-10-05 13:19:25

Używam narzędzia Closure-Compiler do obfuscacji java-script. Minimalizuje kod i ma więcej opcji zaciemniania. To narzędzie jest dostępne w Google code pod poniższym adresem URL:
narzędzia do zamykania

Ale teraz słyszę wiele brzydkich. Można znaleźć różne porównania kompilatora Closure i UglifyJS, w których Uglify wydaje się być zwycięzcą.
UglifyJS: Szybki Nowy Kompresor JavaScript Dla Node.js to na równi z Zamknięciem

Wkrótce I dałoby szansę Brzydulom.

 4
Author: shaILU,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-01-28 02:45:36

Mam wrażenie, że niektóre firmy (np.: JackBe) umieszczają kod JavaScript wewnątrz *.pliki gif, a nie Pliki JS, jako dodatkowa miara zaciemnienia.

 3
Author: xgMz,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-01-24 01:12:38

Jako obfuscator/kompresor JavaScript/HTML/CSS możesz również wypróbować Patu Digua.

 3
Author: Adrian,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-04-17 15:07:00

Wypróbuj to narzędzie Javascript Obfuscator

Użyłem go na mojej grze HTML5 nie tylko zmniejszył rozmiar z 950kb do 150 ale także sprawił, że kod źródłowy nieczytelny Kompilatory zamykające i minifilery są odwracalne osobiście Nie wiem, jak odwrócić tę zaciemnienie.

 3
Author: Jerczu,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-08-19 09:54:53

Zdecydowanie powinieneś rozważyć rzucenie okiem na Obfuscriptor .

Wykraczam poza typowe sztuczki minifigurujące Javascript, które widzieliśmy z innych narzędzi, takich jak Yui Compressorlub Google Closure.

Zakodowany kod wygląda bardziej jak zaszyfrowany. Nigdy wcześniej tego nie widziałem.

 3
Author: Mike,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-03-25 21:06:11

Ten minimalizuje , ale nie zaciemnia. Jeśli nie chcesz używać Javy z linii poleceń, możesz wkleić swój javascript do formularza internetowego.

 3
Author: Chris S,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-04-22 11:48:49

Jeśli używasz biblioteki JavaScript, rozważ Zestaw Narzędzi Dojo, który jest kompatybilny (po drobnych modyfikacjach) z kompilatorem Closure ' s Advanced mode compiler.

Dojo-Jedyna Biblioteka JavaScript Compatible with the Closure Compiler

Kod skompilowany w trybie Closure Advanced jest prawie niemożliwy do inżynierii wstecznej, nawet przechodząc przez upiększacz, ponieważ cała baza kodu (włącznie z Biblioteką) jest zaciemniona. Jest również 25% mały na średnia.

Kod JavaScript, który jest jedynie minifikowany (Yui Compressor, Uglify itp.) jest łatwy do odwrócenia po przejściu przez upiększacz.

 2
Author: Stephen Chung,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-01-28 02:41:27

Używałem tego w przeszłości, i robi dobrą robotę. Nie jest za darmo, ale zdecydowanie powinieneś rzucić okiem.
JavaScript Obfuscator & Encoder

 2
Author: Henry,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-01-28 02:44:15