PHP Parameter Login Abfrage

  • Hallo,


    ich würde gerne wie folgt über ein externes Programm Abfragen ob 0 oder 1 ausgegeben wird. Aktuell wird leider immer nur 1 ausgegeben. Wo sitzt der Fehler ?



  • Du fragst so nur ab, ob es einen Rückgabewert gibt, und natürlich gibt es den, da dein Query erfolgreich ausgeführt wurde :)


    Prüfen, ob die Zeile gefunden wurde machst du so:


    PHP
    $query = "SELECT * FROM users WHERE username = '$username' and password = '$password' LIMIT 1";
    $result = mysqli_query($con, $query);
    echo $result->num_rows;

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • Dort gibt er bei beiden alles Richtig aus. Bei Richtig 1 und bei falsch 0. Ist es sinnvoll den result im echo auszugeben ? Auf die dauer und der Sicherheit bezogen ? Andernfalls reicht das föllig aus wenn hierbei keine Sicherheitslücken entstehen

  • Also an sich kann man das machen, du escapst ja die Strings, also passieren kann da erstmal nichts.


    Dass du md5 nutzt und dann noch ohne salt/pepper ist eher bedenklich ^^

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • Also an sich kann man das machen, du escapst ja die Strings, also passieren kann da erstmal nichts.


    Dass du md5 nutzt und dann noch ohne salt/pepper ist eher bedenklich ^^

    Das ganze möchte ich natürlich noch umschreiben. Bin nur nicht dazu gekommen eine andere Hash Methode einzubauen bzw habe mich noch nicht Informiert wie dies am sinnvollsten zu tun ist. Eventuell kannst du mir dabei ja auch behilflich sein ?

  • Informier dich da ruhig, dass kann nicht schaden ;)


    Ich empfehl dir Hashs aus der SHA-2 / SHA-3 Reihe :)

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • Oder aber du nutzt die bereits in PHP vorhandenen Passwortfunktionen, die sich um all das kümmern (password_hash mit PASSWORD_DEFAULT und password_verify).
    Man sollte sicherheitsrelevante Algorithmen nach Möglichkeit nicht neu implementieren geschweige denn sich neu ausdenken, wenn es schon welche gibt. Mit den vorhandenen Funktionen (die sich ja auch schon tausende Leute mit viel Ahnung angeguckt und geprüft haben) bist du - gerade wenn man noch nicht so viel Übung hat - auf jeden Fall auf der sicherere Seite.

    • Offizieller Beitrag

    Hashes im SHA Verfahren sind ja auch nichts neues, zumal SHA-2 und SHA-3 noch nicht geknackt worden sind


    „Nicht das, was du nicht weißt, bringt dich in Schwierigkeiten, sondern dass, was du sicher zu wissen glaubst, obwohl es gar nicht wahr ist.“
    Mark Twain

    ---
    ICH BIN NUR HIER UM LEUTE ANZUSCHREIEN

  • Hashes im SHA Verfahren sind ja auch nichts neues, zumal SHA-2 und SHA-3 noch nicht geknackt worden sind

    Bringt einem halt auch nichts, wenn man dann beispielsweise keine, zu kurze oder vorhersehbare Salts nutzt. Es geht ja nicht um das Hashing an sich, sondern das Konstrukt drum herum. Da kann man sich viel Arbeit und vor allem auch viele Fehlerpotentiale sparen, wenn man auf bewährte bereits vorhandene Funktionen zurückgreift.

  • Ich klinke mich mal ein weil ich in der Arbeit ein Verwaltungsprogramm von Windows 2000 in eine Weboberfläche umheben muss. Welche PHP Funktion sollte man da jetzt nehmen? Im Internet finde ich da z.B die crypt() Funktion, die ziemlich "neu" sein soll. Damit kann man dann ja den Algor. auch auswählen, oder?

  • Ich klinke mich mal ein weil ich in der Arbeit ein Verwaltungsprogramm von Windows 2000 in eine Weboberfläche umheben muss. Welche PHP Funktion sollte man da jetzt nehmen? Im Internet finde ich da z.B die crypt() Funktion, die ziemlich "neu" sein soll. Damit kann man dann ja den Algor. auch auswählen, oder?

    Das ist korrekt.


    Allerdings verstehe ich die eigentliche Frage nicht ^^

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • Ich klinke mich mal ein weil ich in der Arbeit ein Verwaltungsprogramm von Windows 2000 in eine Weboberfläche umheben muss. Welche PHP Funktion sollte man da jetzt nehmen? Im Internet finde ich da z.B die crypt() Funktion, die ziemlich "neu" sein soll. Damit kann man dann ja den Algor. auch auswählen, oder?

    Kannst du. Zumindest für Passwörter bietet sich aber wie bereits erwähnt password_hash() und password_verify() an. Das sind letztlich einfach nur Wrapper um die crypt() Funktion, die dir ein bisschen Arbeit bei der Verifikation abnehmen aber vor allem (also bei _hash) sicherstellen, dass du einen ordentlichen Salt und einen angemessenen Algorithmus hast. Das ist also letztlich der Idiotensichere Weg. Mit crypt() selbst kannst du halt bei Bedarf so lustigen (aber faktisch unnötigen) Kram wie Double-Salts umsetzen. Ich würde dir da einfach die PHP Dokumentation zu den Funktionen ans Herz legen. Die sind vergleichsweise ausführlich. Vor allem gibt es da in den "User Kommentaren" oft noch ein paar best practices.