Kann jemand meine Ajax-Anfrage in jQuery hacken?

7

Viele Male mache ich einige seltsame Dinge, während ich jquery ajax benutze. Ich meine, ich behalte eine versteckte Variable, die id enthält, und wenn jemand auf button klickt, führe ich eine JavaScript-Funktion aus, die eine Ajax-Anfrage zusammen mit der id , die in hidden field enthalten ist, übergibt. Ist das normal? Was passiert, wenn jemand firebug oder ein solches Tool benutzt und die Funktion javascript ändert und einige andere ids übergibt? Es aktualisiert und löscht andere Datensätze, die möglicherweise nicht zu diesem Benutzer gehören? Wie gehst du damit um?

    
TCM 16.07.2010, 13:54
quelle

4 Antworten

14

Sie brauchen , um diese Serverseite zu sichern, Sie können sie weder auf der Clientseite schützen, noch sollten Sie dies tun.

JavaScript ist sichtbar, ausführbar, dynamisch, offen ... es ist alles, was Sie wollen, wenn Sie ... tun, was auch immer Sie wollen damit, was eine sehr schlechte Sache für die Sicherheit ist. Sie müssen die übergebene ID überprüfen, auf was der Benutzer bei der Verarbeitung der Anfrage Zugriff haben soll.

Alles, und ich meine alles , was Sie auf dem Client tun, ist eine Abschreckung , keine Lösung , und tatsächlich gibt es kein effektives JavaScript Abschreckungsmittel, die ich je gesehen habe. Selbst wenn Sie es sichern könnten, kann ich einfach Firebug, Fiddler, Wireshark, Chrome oder eines von zwölf anderen Tools öffnen, um zu sehen, was die Anfrage letztendlich trotzdem sendet.

    
Nick Craver 16.07.2010, 13:56
quelle
6

Vertrauen Sie niemals den Eingaben Ihrer Benutzer: Überprüfen Sie die ID auf dem Server.

    
Tomas Lycken 16.07.2010 13:56
quelle
2

Sie sollten immer die Eingabe auf der Serverseite überprüfen, wenn die Daten gesendet werden. Wenn beispielsweise ein Benutzer sein Profil auf der Site bearbeitet, würden Sie die Profil-ID nicht in eine verborgene Variable einfügen. Sie würden die Profil-ID basierend auf dem Cookie / der Sitzung des Benutzers ableiten, als die Daten gesendet wurden. Der Schlüsselsatz ist absolut nie dem Klienten zu vertrauen.

    
Fosco 16.07.2010 13:57
quelle
1

Sie müssen eine serverseitige Überprüfung durchführen, um sicherzustellen, dass der aktuelle Benutzer berechtigt ist, die Aktion basierend auf dem aktuellen Benutzer und Kontext auszuführen. Wie Sie bereits festgestellt haben, kann jeder mit gültigen Anmeldeinformationen die Werte ändern, die zurückgegeben werden. Sie müssen Ihren Code nicht einmal ändern. Sie können einfach eine Anfrage erstellen, die alle gewünschten Werte enthält, wenn sie die richtigen Cookie-Informationen haben / p>     

tvanfosson 16.07.2010 13:58
quelle

Tags und Links