So verhindern Sie das Ändern eines Variablenwerts in Javascript [duplizieren]

8

Gibt es eine Möglichkeit, in JavaScript eine Statistik des endgültigen Wertes zu deklarieren, so dass sie nicht von Dritten verändert werden kann?

Was ich habe, ist eine Artikelfreigabeanwendung, mit der kostenlose Nutzer unterstützt werden. Ich möchte verhindern, dass die freien Benutzer den innerHTML-Inhalt ändern, indem sie die Speichervariable für den Inhalt ändern.

Was ich in diesem Moment habe, ist ein Timer, der den innerHTML des Artikels auf der Benutzerwebsite alle 5 Sekunden neu lädt und den Wert für das Reload in einer Variablen speichert.

Wenn jedoch ein Genie, das jsbeatify verwendet, untersucht, welche Variable den Schlüssel zum Entfernen der Anzeige enthält, und das ändert, verlieren wir Umsatz und Exposition unserer Produkte.

Wie verhindert man die Änderung der internen Variable?

AKTUALISIEREN

Das ist das Endergebnis dessen, was ich herausgefunden habe:

Ссылка

%Vor%


%Vor%

Dies wird in einem gepackten Format angezeigt, nur um es schwieriger zu machen, den Code nur aus der Quelle zu kopieren. Auf diese Weise wird der Aufwand, den Code einfach zu kopieren und einzufügen, maximiert und wird sehr schwer zu automatisieren sein.

Vielen Dank für Ihre Antworten.

    
Tschallacka 25.10.2012, 08:49
quelle

2 Antworten

14

Ja, da ist es. Zumindest für Objekteigenschaften gab ES5 die Möglichkeit, die Eigenschaftsbeschreibung Flags manuell zu ändern. Also können wir das tun wie

%Vor%

Auf diese Weise haben wir eine Eigenschaft secret mit dem Wert 42 in data erstellt, die weder verändert noch gelöscht werden kann.

Der Vorbehalt hier ist, dass das Genie (wie Sie es genannt haben) auch in der Lage sein wird, diesen Code zu erkennen und nur zu modifizieren, um den Inhalt wieder ändern zu können, wenn er möchte. Sie können auf diese Weise nicht ein geschütztes Front-End-JavaScript erstellen. Der Code wird immer als einfacher Text für alle verfügbar sein.

Um dies zu vervollständigen, können Sie auch ein Objekt und freeze it zu einem bestimmten Zeitpunkt erstellen, indem Sie Object.freeze() und / oder Object.seal() , um die Option zum Enumerieren , Löschen und Ändern der Eigenschaften eines Objekts zu beenden.

Aber noch einmal das Wort der Vorsicht : Dies soll Ihren eigenen Code oder fremden Code beeinflussen, um Änderungen durch Zufall oder absichtlich zur Laufzeit zu verhindern. Es gibt keine Möglichkeit, einen Entwickler anzuhalten, da er einfach die Ausführung des Skripts anhalten kann, bevor dies wirksam werden kann.

    
jAndy 25.10.2012, 08:53
quelle
3

Probieren Sie const Schlüsselwort. Es sollte eine unveränderbare Variable erstellen.

    
Rorchackh 25.10.2012 08:54
quelle

Tags und Links