• Oha wo fang ich an :)


    Zunächst einmal solltest du niemals passwörter in Klartext speichern oder gar übers Netz schicken. Benutze zumindest MD5. Wenn Du danach Googlest wirst du schnell fündig werden.


    Dann nutzt Dir dein ganzes Eingelogge ja gar nichts wenn dir das login script nicht irgendwas zurück gibt.


    Die Lehrer-Id anhand der Namens herauszufinden macht keinen Sinn. Was machst Du wenn es plötzlich zwei Lehrer Hans Meier gibt? Du must im Login-Script die ID holen und merken oder an die App zurück geben und bei jedem weiteren Script Aufruf angeben.


    Besser noch solltest Du deine Abfragen mit einer SESSION absichern. Das bedeutet du startest eine SESSION und wenn der Login ok ist, dann setzt du eine SESSION Variable mit der Lehrer ID (damit hast du die ID für alle Scripts zur Verfügung) und gibst die SESSION ID an deine App zurück. Jedes weitere Script bekommt nun dieses Session ID übergeben und nur wenn diese noch gültig ist (also die Session noch aktiv), wird das Script auch ausgeführt.


    Übergeben tust Du diese Parameter mit POST Requests. Wenn Du mal nach Android HTTP POST Request suchst, wirst du jede Menge Tutorials dazu finden.


    Viel Spaß


    Claus

  • Hi,


    Nimm als session id lieber nicht die ID des lehrers, die ändert sich ja nie, somit wär es ja immer die selbe session ID und damit leichtes futter für angreifer.


    Generiere beim Login auf dem Server einen Hash, vorzugsweise sha512, damit solltest du dann auch deine passwörter hashen. Ist sicherer als md5 (wobei das immerhin besser ist als nix). Diesen Hash kannst du ja in die Datenbank werfen (am besten als eintrag bei dem user der sich einloggt). Die app bekommt dann den Hash und die UserId gesendet und behält die erstmal. Jedesmal wenn die app nun irgendwelche informationen abfragen will, muss sie den hash und die userid an dein php script senden. Das script überprüft dann in der DB ob ein user mit der id "x" existiert und dieser user in der spalte Hash den gesendeten wert hat.


    SQL
    SELECT Schüler.name, Schüler.vorname FROM Lehrer, Schüler WHERE Lehrer.id = Schüler.id;


    Das macht auch keinen Sinn. Ein Lehrer hat mehrere Schüler. Laut deinem Code kann die ID des Lehrers mit maximal einer ID eines Schülers übereinstimmen. Das müsste eher so aussehen:

    SQL
    SELECT Schüler.name, Schüler.vorname FROM Lehrer, Schüler WHERE Schüler.LehrerId = Lehrer.id;


    Und zu deiner Frage: Ja auf den ersten blick sieht das richtig aus mit dem POST. Aber informier dich mal bitte noch über SQL Injection, das sollte man bei solchen Datenbank abfragen immer im Hinterkopf haben.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!