[PHP] Password_hash function - webinterface

08/20/2019 17:19 Mad0ck#1
HuHu,

Ich habe aktuell folgendes Problem:

Ein User steuert über ein WebInterface diverse Scripte. (Farmscript etc. ).

Aktuell sind alle Dateien lokal beim User am pc. ( ändert sich evt. im Laufe der Zeit ).

Die userdaten der website sind die gleichen wie im Browsergame.
Beide Werte sind in einer DB gespeichert ( Passwort is gehashed ).

Das Script benötigt nun den Usernamen und das Passwort.
Allerdings kommen nun 2 Probleme ins Spiel.

Wie verfasse ich nun eine sql query zum auslesen aller Daten im Script ?
Ich habe ja keine wirklichen anhaltspunkte im script, welche ich zum abfragen nehmen könnte.
( Select username,password,server,lisence FROM users WHERE username = $username
geht ja leider nicht .... )

Zweites Problem, wie bekomme ich nun das Passwort als Klartext, wenn es hashed in der Datenbank vorliegt.


Ziel wäre es, dass der User sich auf der website einloggt -> das script startet und es läuft, ohne das nochmals username und passwort eingegeben werden müssen.


Ist so etwas überhaupt realisierbar ?


Die einzige Lösung, welche mir einfällt wäre, dass der User eine Textdatei mit Username und Passwort erstellt. Die Datei wird dann vom script eingelesen und verarbeitet.
So hätte ich einerseits im Script den Usernamen, und könnte alle anderen Daten aus der DB abfragen, andererseits hätte ich auch das Passwort im Klartext.

Um dem User das erstellen der .txt zu ersparen ( => weil Fehlerquelle ), könnte ich das automatisch per button click im webinterface machen.


Leider wieder mal ein halbes Buch, was ich euch zum lesen aufbereitet habe ...
Hoffentlich kann mir da evt wer helfen.

Lg

auweih ... auch noch nen falscher Titel x.x
08/20/2019 19:07 False#2
Quote:
Originally Posted by Mad0ck View Post
HuHu,

Ich habe aktuell folgendes Problem:

Ein User steuert über ein WebInterface diverse Scripte. (Farmscript etc. ).

Aktuell sind alle Dateien lokal beim User am pc. ( ändert sich evt. im Laufe der Zeit ).

Die userdaten der website sind die gleichen wie im Browsergame.
Beide Werte sind in einer DB gespeichert ( Passwort is gehashed ).

Das Script benötigt nun den Usernamen und das Passwort.
Allerdings kommen nun 2 Probleme ins Spiel.

Wie verfasse ich nun eine sql query zum auslesen aller Daten im Script ?
Ich habe ja keine wirklichen anhaltspunkte im script, welche ich zum abfragen nehmen könnte.
( Select username,password,server,lisence FROM users WHERE username = $username
geht ja leider nicht .... )

Zweites Problem, wie bekomme ich nun das Passwort als Klartext, wenn es hashed in der Datenbank vorliegt.


Ziel wäre es, dass der User sich auf der website einloggt -> das script startet und es läuft, ohne das nochmals username und passwort eingegeben werden müssen.


Ist so etwas überhaupt realisierbar ?


Die einzige Lösung, welche mir einfällt wäre, dass der User eine Textdatei mit Username und Passwort erstellt. Die Datei wird dann vom script eingelesen und verarbeitet.
So hätte ich einerseits im Script den Usernamen, und könnte alle anderen Daten aus der DB abfragen, andererseits hätte ich auch das Passwort im Klartext.

Um dem User das erstellen der .txt zu ersparen ( => weil Fehlerquelle ), könnte ich das automatisch per button click im webinterface machen.


Leider wieder mal ein halbes Buch, was ich euch zum lesen aufbereitet habe ...
Hoffentlich kann mir da evt wer helfen.

Lg

auweih ... auch noch nen falscher Titel x.x
Habe dir den Title angepasst :)

Also zu deinen Fragen:
Quote:
Zeites Problem, wie bekomme ich nun das Passwort als Klartext, wenn es hashed in der Datenbank vorliegt.
Kurz und knapp gar nicht!

Das Ziel beim hashen ist ja gerade das man das Orginal Passwort nicht mehr herausfinden kann. Für dein Vorhaben müsstest du das Passwort verschlüsseln (gibt viele Methoden, einfach mal googeln).

Wobei ich das Passwort nicht in der Datenbank speichern würde. Der Grund ist ganz einfach beim verschlüsseln nutzt man meistens ein key mit dem verschlüsselt und entschlüsselt wird. Ist jemand schon so weit und kommt an deine Datenbank hat er das Passwort und den Key und kann es somit leicht entschlüsseln.
Alternativ kannst du den Benutzer den Key eingeben/hochladen lassen, allerdings könntest du dann auch direkt das Passwort abgleichen.

Sobald der Benutzer das Passwort eingegeben hat (bzw. den key und das passwort entschüsselt wurde) kannst du das Passwort einfach in der Session speichern und für deine Scripte benutzen.
08/20/2019 19:29 Mad0ck#3
Quote:
Originally Posted by False View Post
Habe dir den Title angepasst :)

Also zu deinen Fragen:

Kurz und knapp gar nicht!

Das Ziel beim hashen ist ja gerade das man das Orginal Passwort nicht mehr herausfinden kann. Für dein Vorhaben müsstest du das Passwort verschlüsseln (gibt viele Methoden, einfach mal googeln).

Wobei ich das Passwort nicht in der Datenbank speichern würde. Der Grund ist ganz einfach beim verschlüsseln nutzt man meistens ein key mit dem verschlüsselt und entschlüsselt wird. Ist jemand schon so weit und kommt an deine Datenbank hat er das Passwort und den Key und kann es somit leicht entschlüsseln.
Alternativ kannst du den Benutzer den Key eingeben/hochladen lassen, allerdings könntest du dann auch direkt das Passwort abgleichen.

Sobald der Benutzer das Passwort eingegeben hat (bzw. den key und das passwort entschüsselt wurde) kannst du das Passwort einfach in der Session speichern und für deine Scripte benutzen.
Hab das Thema vorerst mit einer eigenen settings.txt datei gelöst (:

Schade, dass es vorerst nicht anders zu lösen geht ( abgesehen von den Session wie du es erklärt hast )

Danke ! Mal wieder (:
09/27/2019 11:10 Pr0xyPlayZ#4
Ein Hash oder auch (Password) welches du mittels SHA oder bCrypt erstellt kann niciht rückwirkend decodiert werden. Es gibt Hash Listen wo das Passort vorhanden sein KANN aber nicht muss.