Login System mit Remember me ohne MYSQL

02/23/2019 14:01 Malest#1
Hallo, würde gern meiner Webseite eine "Eingeloggt bleiben" Funktion einfügen, leider hab ich da nicht die Erfahrung hab, dies richtig mit MYSQL hin zu bekommen habe ich angedacht, dies ohne versuchen einzufügen.

Meine Login.php sieht wie folgt aus:

Ich weiß, eine TXT-Datei ist nicht die sicherste Methode aber es läuft so oder so nur 1-4 Accounts drüber.

in der index.html steht dann nur :


Würde mich freuen, wenn jemand da eine schnelle Lösung hat, dachte an Cookies aber finde immer nur was mit MYSQL, müsste dann wieder alles umschmeißen, das wollt ich nicht unbedingt.
02/23/2019 16:38 Der-Eddy#2
Was für ne uralte Anleitung hast du dafür ausgegraben?

1. Wenn du schon flat files benutzt für die Login Daten, auf KEINEN Fall eine Dateiendung geben welche ein Browser verarbeiten kann und schon gar keine *.txt Dateiendung
Wenn dann nenn die Datei user.php, dann denkt der Webserver es wäre PHP Code und gibt die Datei nicht öffentlich Preis, dein Script kann sie aber trotzdem genauso lesen ohne Einschränkungen
Alternativ natürlich einfach die Datei irgendwohin schieben wo der Webserver sie nicht verarbeiten kann
weitere Alternative wäre eine sqlite Datenbank in Dateiformat

2. MD5 hahses sind brutal veraltet, unsicher und jeder der sie für Login Authentication nutzt ist ein Idiot, Ende
eine einfache Alternative ist [Only registered and activated users can see links. Click Here To Register...] was genauso komfortabel aber ein Millionen mal sicherer macht

3. Für dein eigentliches Problem ...
es gibt einen Grund warum man für sowas oft eine Datenbank einsetzt, dann kann man einen Logintoken oder ähnliches als Cookie hinterlegen anstatt auf unsichere Weise das Passwort als Cookie zu speichern
für deine Zwecke würde es wahrscheinlich am meisten Sinn machen das hashed password + username als [Only registered and activated users can see links. Click Here To Register...] und später abzugleichen
das ist zwar nicht der sicherste Weg, aber wohl das was du erreichen wolltest
02/23/2019 18:27 florian0#3
Quote:
Originally Posted by Der-Eddy View Post
es gibt einen Grund warum man für sowas oft eine Datenbank einsetzt, dann kann man einen Logintoken oder ähnliches als Cookie hinterlegen anstatt auf unsichere Weise das Passwort als Cookie zu speichern
für deine Zwecke würde es wahrscheinlich am meisten Sinn machen das hashed password + username als [Only registered and activated users can see links. Click Here To Register...] und später abzugleichen
das ist zwar nicht der sicherste Weg, aber wohl das was du erreichen wolltest
Was spricht denn dagegen, das ganze in der Session zu speichern? Die Sessionvariable kann der User nicht einsehen oder verändern. Einfach den Usernamen und einen Zeitstempel über die letzte Aktivität (und den Loginzeitpunkt) in die Session abspeichern. Dann kann man zum einen sicher sein, dass sich der User schonmal angemeldet hat, und über den Zeitstempel kann man kontrollieren, dass eine Session nicht älter als Zeitraum X ist.
02/23/2019 20:13 Malest#4
@[Only registered and activated users can see links. Click Here To Register...] ob jemand den acc sieht oder nicht, spielt zzt. Keine Rolle, da es erstmal nur intern genutzt werden soll, somit nur 4-5 Personen ein Account haben bzw evtl. Alles über ein Acc läuft, deswegen wollte ich es erstmal so ohne eine DB laufen lassen, habe zwar eine DB aber da ich damit auch nicht so ein Experte bin, schaue ich, dass ich es erstmal anders zum laufen krieg.

Dennoch werde ich dein Feedback noch in die Tat umsetzen, bin so oder so ganze Zeit am umschreiben was umgeschrieben werden kann ��
02/24/2019 01:45 False#5
#moved
02/25/2019 12:00 Legithos#6
Quote:
Originally Posted by florian0 View Post
Was spricht denn dagegen, das ganze in der Session zu speichern? Die Sessionvariable kann der User nicht einsehen oder verändern. Einfach den Usernamen und einen Zeitstempel über die letzte Aktivität (und den Loginzeitpunkt) in die Session abspeichern. Dann kann man zum einen sicher sein, dass sich der User schonmal angemeldet hat, und über den Zeitstempel kann man kontrollieren, dass eine Session nicht älter als Zeitraum X ist.
Weil die Session zerstört wird, wenn der Browser geschlossen wird = man wird automatisch ausgeloggt.

Tatsächlich würde ich es ohne DB eben auch rein per Cookies machen.

Schau mal hier: [Only registered and activated users can see links. Click Here To Register...]
02/25/2019 15:04 florian0#7
Quote:
Originally Posted by Legithos View Post
Weil die Session zerstört wird, wenn der Browser geschlossen wird = man wird automatisch ausgeloggt.
Aber dafür gibts ja session_set_cookie_params. Da kann man den Session-Cookie bearbeiten so wie jeden anderen Cookie.
[Only registered and activated users can see links. Click Here To Register...]
02/25/2019 22:28 Devsome#8
Dann nimm [Only registered and activated users can see links. Click Here To Register...] anstatt Session