Tak więc piszę grę z JavaScript, a największym problemem jest to, że ktokolwiek gra, kto może mieć przyzwoitą znajomość JS, może otworzyć mój kod źródłowy, wymyślić jak to działa, a następnie podłącz game.score = 100000000000000;
do konsoli. Wydaje się jednak, że oprócz zaciemniania skryptu, zawijanie wszystkiego w anonimowej funkcji działa lewą.Zapobieganie wykonywaniu kodu przez użytkownika
(function() {
game_start = function() {
//etc
}
//etc
})();
Gdy próbuję i uruchom dowolnego kodu z konsoli Chrome, to wyjdzie z undefined
. To jest pożądany rezultat, ale czy istnieje sposób obejścia mojej metody, który uczyniłby go bezużytecznym? Lub jeszcze lepszy sposób, aby zapobiec uruchamianiu się z konsoli?
Kod po stronie klienta może * nigdy * zostać naprawdę nieprzekupny. –
A możesz dodać punkt przerwania w chrome i zmienić, co chcesz. Nie zawracaj sobie głowy włożeniem w to wiele wysiłku. Najlepsze, co wymyślisz, to zamazać/zminimalizować kod, więc trudno go odczytać. spójrz na coś podobnego do uglifyjs –
Zobacz http://stackoverflow.com/a/11960187/453277 –