Frage

Ich verwende Jquery Ajax, um Updates auf meinen Server zurückzusenden.Mir geht es darum, sicherzustellen, dass ich geeignete Maßnahmen ergriffen habe, damit nur meine AJAX-Aufrufe Daten veröffentlichen können.

Mein Stack ist PHP auf Apache gegen ein MySQL-Backend.

Der Rat wird sehr geschätzt!

War es hilfreich?

Lösung

Jede Anfrage, die die AJAX-Aufrufe in Ihren Seiten stellen können, kann auch von jemandem außerhalb der Anwendung gestellt werden.Wenn Sie es richtig machen, können Sie nicht erkennen, ob sie als Teil eines AJAX-Aufrufs von Ihrer Webanwendung oder manuell bzw. auf andere Weise getätigt wurden.

Ich kann mir zwei Szenarien vorstellen, über die Sie sprechen könnten, wenn Sie sagen, dass Sie sicherstellen möchten, dass nur Ihre AJAX-Aufrufe Daten veröffentlichen können:Entweder möchten Sie nicht, dass ein böswilliger Benutzer Daten veröffentlichen kann, die die Daten eines anderen Benutzers beeinträchtigen, oder Sie möchten die Beiträge tatsächlich auf den „Fluss“ eines Vorgangs mit mehreren Anforderungen beschränken.

Wenn Sie sich mit dem ersten Fall befassen (jemand postet bösartige Daten an einen anderen Benutzer bzw. als anderen Benutzer), ist die Lösung dieselbe, unabhängig davon, ob Sie AJAX verwenden oder nicht – Sie müssen den Benutzer nur mit allen erforderlichen Mitteln authentifizieren – normalerweise über eine Sitzung Plätzchen.

Wenn Sie sich mit dem zweiten Fall befassen, müssen Sie beispielsweise bei jedem Schritt des Prozesses ein eindeutiges Token ausstellen und das erwartete Token auf der Serverseite speichern.Wenn dann eine Anfrage gestellt wird, prüfen Sie, ob auf der Serverseite ein entsprechender Eintrag für die ausgeführte Aktion vorhanden ist, ob die erwarteten Token übereinstimmen und ob dieser Token noch nicht verwendet wurde.Ist dies nicht der Fall, lehnen Sie die Anfrage ab. Ist dies der Fall, markieren Sie das Token als verwendet und verarbeiten die Anfrage.

Wenn Sie sich über etwas anderes als eines dieser beiden Szenarios Sorgen machen, hängt die Antwort von weiteren Einzelheiten ab, als Sie angegeben haben.

Andere Tipps

Verwenden Sie Sitzungen, um sicherzustellen, dass alle Ajax-Beiträge in einem authentifizierten Kontext erfolgen.Stellen Sie sich Ihren Ajax-Code einfach als einen weiteren Client für Ihren Server vor. Auf diese Weise lassen sich Authentifizierungsprobleme einfacher lösen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top