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.
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.
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):
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.
Ü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)
Tags und Links javascript security browser code-injection malware