PHP - POST-Daten verwerfen

Übersicht Sonstiges Smalltalk

Neue Antwort erstellen

Der Eisvogel

Betreff: PHP - POST-Daten verwerfen

BeitragDo, Feb 25, 2010 19:51
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo
Ich habe mal wieder eine Frage zu PHP.
Ich habe mir ein Login-Skript geschrieben, dass Benutzernamen und Passwort über ein Formular per POST geschickt bekommt. Wenn man sich jetzt als User ausloggt kann ein anderer, im selben Tab so oft zurückgehen, bis er zu dem Teil kommt, wo die Benutzerdaten geschickt wurden. Diese können erneut gesendet werden, so dass der User wieder eingeloggt wird. Kann ich das irgendwie verhindern?

MfG
Der Eisvogel
Ungarische Notation kann nützlich sein.
BlitzMax ; Blitz3D
Win 7 Pro 64 Bit ; Intel Core i7-860 ; 8 GB Ram ; ATI HD 5750 1 GB
Projekte: Window-Crasher
Ich liebe es mit der WinAPI zu spielen.

Thorsten

BeitragDo, Feb 25, 2010 19:59
Antworten mit Zitat
Benutzer-Profile anzeigen
Eigentlich sollte das mit Zitat:
<input type="password">
schon nicht mehr möglich sein.

Der Eisvogel

BeitragDo, Feb 25, 2010 21:53
Antworten mit Zitat
Benutzer-Profile anzeigen
Funktioniert aber leider. Ich habe Firefox 3.6.
Ungarische Notation kann nützlich sein.
BlitzMax ; Blitz3D
Win 7 Pro 64 Bit ; Intel Core i7-860 ; 8 GB Ram ; ATI HD 5750 1 GB
Projekte: Window-Crasher
Ich liebe es mit der WinAPI zu spielen.

Hummelpups

BeitragDo, Feb 25, 2010 21:55
Antworten mit Zitat
Benutzer-Profile anzeigen
Thorsten, er meint das wenn er zurück geht, fragt er irgendwann etwas ähnliches
wie "Wollen sie die POST daten erneut senden" und da kann man auf Senden klicken oder so X)
blucode - webdesign - Ressource - NetzwerkSim
BlitzBasic 2D - BlitzMax - MaxGUI - Monkey - BlitzPlus

ChaosCoder

BeitragDo, Feb 25, 2010 22:10
Antworten mit Zitat
Benutzer-Profile anzeigen
Du kannst auch lustig sein und jedesmal, wenn man deine Seite mit dem Loginskript aufruft, generiert PHP eine UID, die einmal in die Datenbank geschrieben wird und mit in der Session geschrieben wird. Wenn man jetzt seine Benutzerdaten eingibt, wird im nähctsen Schritt überprüft ob diese UID (in nem hidden field oder so) auch in der DB existiert. Loggt man sich aus, wird die Session beendet und spätestens dann die UID aus der DB gelöscht (könnte man aber auch direkt nach dem einloggen machen). Die UID machst du nur für ein paar Minuten gültig oder so und fertig ist das Loginscript.

Das wird wahrscheinlich keine effiziente Lösung sein und es gibt mit ziemlicher Sicherheit ne viel einfachere Lösung. Aber dann haste hier wenigstens ne Lösung, die deine PHP und SQL Kenntnisse abfordert Smile

Viel Spaß Wink
Projekte: Geolaria | aNemy
Webseite: chaosspace.de

Artemis

BeitragDo, Feb 25, 2010 22:21
Antworten mit Zitat
Benutzer-Profile anzeigen
Ganz einfach:
Nach dem erfoglreichen Login eine Weiterleitung per header('Location: /logged-in', 302) durchführen und schon funktioniert das nicht. Sollte man generell bei Formularen machen, da dann z.B. man auch nicht aus Versehen durch ein F5 einen Forum-Post doppelt erstellt etc.

EDIT: 301 durch 302 ersetzt. Hatte das falsch im Kopf.
  • Zuletzt bearbeitet von Artemis am Fr, Feb 26, 2010 17:25, insgesamt einmal bearbeitet

Der Eisvogel

BeitragFr, Feb 26, 2010 0:14
Antworten mit Zitat
Benutzer-Profile anzeigen
@Artemis: Cool, jetzt wo du es sagst. Das hab ich (weiß nicht mehr warum) auch bei meinem Gästebuch gemacht. Da kann man auch per zurück nix mehr schreiben. Gut zu wissen, dass es daran liegt. Aber was bedeutet die 301? und spielt es eine große Rolle wo man hin "located"? Kann ich auch, mit der selben Sicherheit, einfach auf die selbe Seite "locaten"?

MfG
Der Eisvogel
Ungarische Notation kann nützlich sein.
BlitzMax ; Blitz3D
Win 7 Pro 64 Bit ; Intel Core i7-860 ; 8 GB Ram ; ATI HD 5750 1 GB
Projekte: Window-Crasher
Ich liebe es mit der WinAPI zu spielen.
 

Lion

BeitragFr, Feb 26, 2010 0:32
Antworten mit Zitat
Benutzer-Profile anzeigen
http://de.wikipedia.org/wiki/H..._Umleitung

Wink
das ist 301
Intel Core 2 Quad 4x2.66 ghz - 4gb ddr2 - nvidia GeForce GTX660 2gb
Intel Atom 1x1.83 ghz - 2gb ddr2 - intel GMA 3150 256mb
AMD A10-5750M 4x2.5 ghz - 8 gb ddr4 - AMD R9 M290x
 

#Reaper

Newsposter

BeitragFr, Feb 26, 2010 0:59
Antworten mit Zitat
Benutzer-Profile anzeigen
Also eigentlich solltest du den kompletten Login mittels Sessions erledigen. Beim Login wird eine Session mit passenden Daten und ggf. auch Login-Status erstellt, bei jeder Aktion wird das geprüft und beim Logout wird die Session gelöscht.
So habe ich es zu mindestens bislang gemacht.
AMD Athlon 64 3500+, ATI AX800 Pro/TD, 2048 MB DRR 400 von Infineon, ♥RIP♥ (2005 - Juli 2015 -> sic!)
Blitz3D, BlitzMax, MaxGUI, Monkey X; Win7

Artemis

BeitragFr, Feb 26, 2010 17:27
Antworten mit Zitat
Benutzer-Profile anzeigen
Sollte eigentlich 302 sein, da es ja nur eine "Temporäre" Weiterleitung ist.
301er sollte man nur verwenden, wenn die alte Adresse wirklich nicht benutzt werden sollte (z.B. Weiterleitung von www.example.com auf example.com oder example.com/post?id=1 auf example.com/hey-this-is-my-first-post).
 

Garfield12

BeitragFr, Feb 26, 2010 17:39
Antworten mit Zitat
Benutzer-Profile anzeigen
Kann Reaper nur zustimmen,
ich habe das auch mit Sessions erledigt. Ich übergebe nach dem Log-In einfach die Variabeln in die Sessionvariabeln und überschreibe die alten dann.
Garfield

Der Eisvogel

BeitragFr, Feb 26, 2010 18:01
Antworten mit Zitat
Benutzer-Profile anzeigen
Das mache ich auch über Sessions, aber das Loginskript schickt ja die Daten an ein PHP-Skript, welches die Session anlegt. Wenn man jetzt die Session löscht, dann konnte man durch das oben beschrieben, die Daten erneut senden, was zur Folge hatt, dass ein neue Session erstellt wurde. Aber das ist jetzt durch der Header nicht mehr so.
Ungarische Notation kann nützlich sein.
BlitzMax ; Blitz3D
Win 7 Pro 64 Bit ; Intel Core i7-860 ; 8 GB Ram ; ATI HD 5750 1 GB
Projekte: Window-Crasher
Ich liebe es mit der WinAPI zu spielen.
 

#Reaper

Newsposter

BeitragFr, Feb 26, 2010 18:08
Antworten mit Zitat
Benutzer-Profile anzeigen
Oh.. stimmt... Embarassed
Dann würde ich zusätzlich noch ChaosCoders Vorschlag anwenden. Hilft auch eh gegen eine andere Art von Angriff.
Das mit der Weiterleitung kann auch von jedem Browser anders gehandhabt werden.
AMD Athlon 64 3500+, ATI AX800 Pro/TD, 2048 MB DRR 400 von Infineon, ♥RIP♥ (2005 - Juli 2015 -> sic!)
Blitz3D, BlitzMax, MaxGUI, Monkey X; Win7

Neue Antwort erstellen


Übersicht Sonstiges Smalltalk

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group