Koordinaten verschlüsselt übertragen

ThiKool

Erfahrenes Mitglied
Hallo Zusammen,

ich habe folgendes Problem.

Ich habe eine Jquery Animation laufen, die per Button gestoppt wird.
Dann werden die aktuellen Koordinaten des (gestoppten) animierten Objekts per Ajax an den Server übermittelt.

Gibt es irgendeine Möglichkeit mich vor Manipulation zu schützen? Denn wenn Jemand die gewünschten Koordinaten zB. left 100, top 100 kennt, kann er ja so selbst Ajax Requests absetzen ohne den Button zu drücken (der nicht immer verfügbar ist usw).

Ich habe es mit CryptoJS probiert - dies ist aber auch witzlos, da ich den Key ja im JS zusammenbauen muss -> also auch wieder nachvollziehbar wie das funktioniert.

Der einzige Ansatz der mir einfällt wäre hiermit (http://html2canvas.hertzen.com/) einen Screenshot zu erstellen und diesen dann Serverseitig nach dem gewünschten Objekt abzusuchen.

Ich danke euch
 
Zuletzt bearbeitet:
Hi

also die möglichen "Bösen" sind nicht nur Dritte, sondern auch der eigentliche Verwender der Webseite?
Clientseitig kann man dann gleich vergessen.

Der Server muss selber mitrechnen, wie der Stand am Client gerade ist und ob ein erhaltener Buttondruck dadurch gültig ist. (Weiß ja die Details nicht, aber je nach Situation ist es dadurch evt. gar nicht möglich bzw. erfordert etwas prinzipiell anderes.)
 
Hmm, danke, sowas dachte ich mir schon.

Was hälst du von der Variante mit dem Screenshot? Nicht sehr performant oder?

Weißt du ob man aus einem base64 String gleich die Koordinaten eines darin befindlichen Unterstrings erkennen / herauslesen kann, oder muss ich daraus erst ein .jpg generieren und dann per PHP drüber?
 
Gibt es irgendeine Möglichkeit mich vor Manipulation zu schützen? Denn wenn Jemand die gewünschten Koordinaten zB. left 100, top 100 kennt, kann er ja so selbst Ajax Requests absetzen ohne den Button zu drücken
Vielleicht ein verstecktes Formularfeld <input type="hidden" value=""> einbinden, dessen leeres value-Attribut beim Versand mit Daten gefüllt wird, die die Aktion verifizieren.
 
Der Screenshot ist doch auch nur clientseitig => fälschbar.

Sachen in einem Bild finden, dass man als Base64 hat, ist theoretisch zwar möglich, aber praktisch müsste man sehr viel Bildhandlingcode selber schreiben. Mit einem Funktionsaufruf Base64 zuerst zurückumwandeln ist jedenfalls viel einfacher.

edit: Auch ein Hidden-Feld ist nicht sicher. Clientseitig ist gar nichts sicher. ...Ich weiß ja nicht, wie sicher es sein muss bzw. wie viel Aufwand einem Angreifer zuzumuten ist. Daher die Annahme "beliebig viel".
 
Danke,
hmm habe jetzt ein bisschen mit der Screenshotvariante experimentiert.
Problem: den Base64 String muss ich ja ebenfalls per Ajax übertragen und dieser bleibt ja auch immer gleich.
 
Also wie ich das sehe, gibt es keine Möglichkeit zu validieren, ob wirklich ein echter User auf den Button geklickt hat und somit die Koordinaten korrekt sind, oder ob die Übertragung einfach aus der Dev Konsole stammt.

Bleibt nur noch die Variante mit dem Serverseitigen mitrechnen und die ist sicherlich zu ungenau.
 
Außer dass es
a) Requests an den Server nicht einmal irgendwie betrifft
b) auch händisch schnell zerlegbar ist, und automatisiert sowieso
?

Ich wiederhols gern nochmal: Wenn man außerhalb vom eigenen Server keinem vertrauen kann, auch nicht dem Client, dann kann man außerhalb vom Server eben keinem vertrauen.
Es gibt absolut keine verlässliche Möglichkeit herauszufinden, wie HTTP-Requests erzeugt wurden (von deinem JS-Programm oder nicht), wenn dieses Programm auf einem fremden Computer läuft.
 
Zurück