Frage

Was ist die beste Vorgehensweise, um sicherzustellen, dass bestimmte Ajax-Aufrufe an bestimmte Seiten nur von authentifizierten Benutzern akzeptiert werden?

Zum Beispiel:

Nehmen wir an, ich habe eine Hauptseite namens blog.php (Ich weiß, Kreativität gibt es im Überfluss).Nehmen wir auch an, dass es eine Seite mit dem Namen gibt delete.php welches nach dem Parameter sucht post_id und löscht dann einen Eintrag aus einer Datenbank.

In diesem sehr konstruierten Beispiel gibt es in blog.php einen Mechanismus, der über Ajax eine Anfrage an delete.php sendet, um einen Eintrag zu löschen.

Jetzt steht dieser Mechanismus nur authentifizierten Benutzern auf blog.php zur Verfügung.Aber was hindert jemanden daran, einfach delete.php mit einer Menge Zufallszahlen aufzurufen und alles auf der Website zu löschen?

Ich habe einen kurzen Test durchgeführt, bei dem ich eine Sitzungsvariable in blog.php festgelegt und dann einen Ajax-Aufruf an delete.php ausgeführt habe, um zurückzugeben, ob die Sitzungsvariable festgelegt war oder nicht (war es nicht).

Wie wird mit solchen Dingen üblicherweise umgegangen?


OK.Ich muss verrückt gewesen sein, als ich das zum ersten Mal probiert habe.

Ich habe gerade einen weiteren Test wie den oben beschriebenen durchgeführt und er hat perfekt funktioniert.

War es hilfreich?

Lösung

Sie haben zu Recht versucht, Sitzungsvariablen zu verwenden.Sobald sich Ihr Benutzer authentifiziert hat, sollten Sie diese Informationen in seiner Sitzung speichern, damit sie bei jedem nachfolgenden Seitenaufruf angezeigt werden.Stellen Sie sicher, dass Sie anrufen session_start() auf beiden Seiten (blog.php und delete.php) vor dem Zugriff auf $_SESSION.Stellen Sie außerdem sicher, dass Cookies aktiviert sind. Wenn nicht, sollten Sie einen zusätzlichen Parameter in der Abfragezeichenfolge übergeben, normalerweise PHPSESSID=<session_id()>.

Andere Tipps

Es wird nicht empfohlen, sich bei der Authentifizierung auf Sitzungen zu verlassen, ohne zusätzliche Maßnahmen zu ergreifen.Lesen Sie mehr unter.

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