[PHP7 + Ajax] Überprüfung von Logindaten im Hintergrund - Sicherheitsproblem?

  • Hallo liebe Fischbrötchen,
    ich würde gerne den Login auf einer Seite so gestalten das der Nutzer seine Logindaten eingibt, auf Login klickt und im Hintergrund (Ohne Neuladen der Seite) via jQuery ein PHP-Script mit den Logindaten aufgerufen wird.
    Da Javascript jedoch Clientseitig ist befürchte ich das ein versierter Nutzer sich dies zu nutze machen Könnte um die Response vom PHP Script abzufangen und diese bspw. von false (Logindaten ungültig oder nicht gefunden) zu true zu ändern (Nutzer gefunden und Login Daten korrekt).
    Ich habe dazu leider noch keinen Code geschrieben um dies besser zu veranschaulichen.
    Nun ist meine Frage...
    Mache ich mir zu recht Sorgen oder... Beschäftige mich aktuell mehr oder minder zum ersten mal mit sowas.
    Danke im vorraus.

    • Offizieller Beitrag

    Hi.


    Das dein PHP Script dir zurückgibt, ob die Angaben korrekt waren oder nicht, ist ja egal (zumindest für den Nutzer, der diese abfangen und ändern möchte).
    Wichtig ist ja, dass der Nutzer auch im gleichen PHP-Skript eingeloggt wird, wo auch die Überprüfung der angegebenen Daten stattfindet, dass kann er ja nicht
    beeinflussen.

  • Aber der Nutzer kann die SESSION variablen modifizieren, oder?

  • Die Session-Data wird Serverseitig gespeichert und sollte somit nicht von außen modifizierbar sein.


    Edit:
    Sofern der Server richtig konfiguriert ist, und die Session-Data nicht in einem public Verzeichnis speichert ;)

  • Grundsätzlich kein Problem, du musst auch dein Login nicht in der selben Datei einbauen.
    Heutige moderne Sprachen basieren alle auf OOP Strukturen mit einem MVVM oder mindestens einem MVC Konzept.


    Jedoch würde ich wie du schon richtig sagst, einen Service schreiben der die Daten validiert. Den kannst du dann via Ajax triggern.
    Da du hoffentlich einen Verschlüsselungsalgorithmus verwendest, sollten die Daten vor Senden des Formulares bereits verschlüsselt sein, so dass es schwieriger wird einen validen Hash zu erzeugen (falls etwas modifiziert wird)


    Edit: Du solltest natürlich drauf achten das du den Aufruf entsprechend gestaltest (synchron, oder asynchron) , dass der User nicht ohne Validierung bereits ins Panel rutscht.