Wie macht man Javascript-Code Hacking / Injektion / Manipulation schwierig?

7

Gibt es Möglichkeiten, jemanden zu verhindern oder es schwierig genug zu machen, um Javascript einzuschleusen und die Variablen oder Zugriffsfunktionen zu manipulieren? Ein Gedanke, den ich hatte, ist, alle Var-Namen zufällig bei jedem Neuladen zu ändern, so dass das Malwareskript jedes Mal neu geschrieben werden müsste? Oder gibt es andere, weniger schmerzhafte Wege?

Ich verstehe, dass sich irgendwann jemand hineinhacken wird, aber ich würde gerne wissen, wie es schwierig wird, die Aktion zu reproduzieren, so dass die Leute kein Bookmarklet oder etwas ähnliches veröffentlichen, das jeder benutzen kann. Es ist mir egal, ob Experten ihren Weg in den Code finden, aber ich möchte, dass es etwas komplexer ist als javascript:d=0;

Wenn Sie wissen, wie Sie das Hacken von Javascript ein bisschen schwieriger machen können, schreiben Sie bitte diese.

    
stagas 07.07.2010, 12:27
quelle

4 Antworten

14

Sie können Ihre JS schreiben, um nur private Methoden und Variablen in einer selbstausführenden Funktion zu verwenden. Der folgende Code hinterlässt beispielsweise im globalen Namespace kein Zeichen für sich selbst.

%Vor%

[BEARBEITEN] Der obige Code ist anfällig dafür, dass ein Benutzer global verfügbare Objekte, Methoden, Ereignisse oder Eigenschaften überschreibt (in diesem Fall document , getElementsByTagName und addEventListener ). Wenn Sie wirklich paranoid sind, können Sie diese kopieren zu Ihrem Funktionsumfang, bevor die Seite geladen wurde und der Benutzer sie überschreiben kann. Die Verwendung von addEventListener ist eine gute Idee, da sie im Gegensatz zum Ereignis body.onclick nicht von außerhalb der Funktion entfernt oder überschrieben werden kann.

    
Andrew 07.07.2010, 12:43
quelle
24

Akzeptieren Sie, dass Ihr Javascript "manipuliert" und auf der Serverseite bereitgestellt wird. Es gibt grundsätzlich nichts, was Sie tun können, um Leute daran zu hindern, mit dem Kunden herumzubasteln.

    
spender 07.07.2010 12:30
quelle
0

Jeder Benutzer, der den Client manipulieren möchte, kann dies tun. Der Code ist auf seiner Maschine. Selbst wenn Sie den clientseitigen Code verschleiern, gibt es Tools, mit deren Hilfe jemand den Code in Sekundenschnelle entschlüsseln kann.

Was Sie jedoch beachten müssen, ist, dass die Site auf dem Server sicher und für andere Benutzer ebenfalls sicher ist. Dies bedeutet (mindestens):

  1. Prüfen / Validieren jeder Anfrage und Eingabe von Parametern auf dem Server, so dass Benutzer keine serverseitigen Daten ändern können, indem sie "gehackte" clientseitige Funktionen auslösen, die Sie geschrieben haben.

  2. Überprüfen Sie alle Daten, die Sie auf dem Bildschirm ausgegeben haben, die von Benutzereingaben stammen. Andere Benutzer haben möglicherweise clientseitige Skripts eingefügt, die für Ihre Site gefährlich sind und insbesondere für die anderen Benutzer Ihrer Site gefährlich sind. (Wenn Sie .net verwenden dann überprüfen Sie die AntiXSS-Bibliothek)

gillyb 17.07.2010 08:08
quelle
-1

Verschleierung und Minification sollten es ein bisschen schwieriger machen, es zu hacken, aber ich stimme dem Spender zu.

    
JoshNaro 16.07.2010 18:47
quelle