Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

[PHP] Loginformular Auto-Browser-Form-Post verhindern

Empfohlene Antworten

Veröffentlicht

Hallo zusammen,

ich habe hier eine Webseite mit einem Loginbereich.

Nun kann man sich dort natürlich anmelden ;). Nun kann man sich nun im internen Bereich bewegeb und anschließend wieder ausloggen. Wenn man nun seinen PC verlässt, den Browser aber geöffnet lässt, kann sich jemand an den PC setzen, dort im Browser mit dem BACK Button in der History bis zum LoginFom zurückblättern. Jetzt sage der Browser, das er die Seite nur darstellen kann, wenn er die Formular Daten nochmals abschickt. Wenn man dies nun mit Ja bestätigt, ist der vermeindliche Übeltäter in meinem internen Bereich....

Gibt es einen Header o.ä. den ich schicken kann, der den Browser dazu veranlasst, solche Form posts nicht mehr dem User anzubieten?

Danke für alle Infos!

Gruß,

Markus

Hi!

Nur so ne Idee. Du generierst auf der Loginseite nen md5 Zufalls-Hash. Den schreibst Du in ne Datenbank und gibst ihn beim Login über ein hidden Feld mit. Sobald der User seine Daten eingegeben hat und auf "login" klickt prüftst Du nicht nur den Loginnamen und das Passwort, sondern auch ob der md5-Hash in der Datenbank steht. Dann, unabhängig davon ob der Username und das Passwort stimmen löschst Du den Hash oder setzt ihn über ein zweites Feld auf inaktiv. So ist gewährleistet, dass man die Post-Daten nur einmal nutzen kann.

Grüße, Tobias

ich persönlich würde in die session eine hash var beim ersten mal eintragen und danach nur überprüfen ob die hash var wiederholt eingetragen werden möchte ;)

also so :

if session hash != deine hash then machen, else echo "nix reload !" danach hash var wieder neu setzen ;)

Hi,

danke für die Vorschläge... ich meine mal gelesen zu haben, dass das alles mit einem ganz einfach Header befehl geht. Ich hab auch schon ein paar getestet, leider hats nicht ganz funktioniert.

Im IE hatte ich schon teilweise erfolge mit folgendem header:


  header("Cache-Control: no-cache");

  header("Pragma: no-cache");

Gruß,

Markus

danke für die Vorschläge... ich meine mal gelesen zu haben, dass das alles mit einem ganz einfach Header befehl geht. Ich hab auch schon ein paar getestet, leider hats nicht ganz funktioniert.

Ich würde mich darauf aber auch nicht verlassen. Mit solchen Anweisungen im Header sagst du dem Browser zwar, er soll die Daten nicht cachen, ob er sich aber auch daran hält weißt du nicht. "Vertrauen ist gut, Kontrolle ist besser".

Ich würde es auch mit einem Hash o.ä. machen, z.B. kannst du beim generieren der Login-Seite einen Hash aus Datum und Uhrzeit erzeugen (als hidden Field). Diesen Hash prüfst du dann beim Login-Vorgang. Wenn die Differenz nicht <= 5min (z.B.) ist, lehnst du den Loginvorgang ab.

Ok, ein Hash ist für eine Differenz vielleicht nicht gut geeignet, aber vom Prinzip halt...

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.