Obawy dotyczące bezpieczeństwa Javascript
W moim poprzednim pytaniu:Zabezpieczanie czasu gry w JavaScript
... stało się jasne, że czas po stronie klienta w grze Javascript / Canvas po prostu nie będzie bezpieczny. Znam mantrę o nie ufaniu klientowi - to właśnie powoduje moją walkę na pierwszym miejscu. :-)
Tak więc, jeśli przeniosę wszystkie czasy na serwer i po prostu sobie z tym poradzę, oto pytanie uzupełniające. Oczywiście gra musi zostać ukończona przed jej przesłaniem. Ponieważ łamigłówka jest w całości w języku JavaScript, wprowadza to problem z manipulowaniem kodem po stronie klienta w celu sfałszowania zakończenia gry.
Stworzyłem kod JS gry w osobnym pliku klasy. Jeśli tworzę instancję gry jako taką:
var game;
$document.ready(function(){
game = new Game();
});
... wtedy mogę uzyskać dostęp do obiektu 'game' i wszystkich jego metod i zmiennych za pośrednictwem konsoli.
Jeśli jednak to zrobię:
$document.ready(function(){
var game = new Game();
});
... wtedy nie mogę uzyskać dostępu do obiektu „gry” przez konsolę. Wydaje się, że to pomaga, ale czy jest coś, czego nie wiem - czy ten obiekt nadal jest dostępny w jakiś sposób, o którym nie wiem lub czy czyni go prywatną odmianą w tej funkcji trochę bezpieczniej?
Dzięki!