VC# -> PHP -> MySQL Sichere Verbindung aufbauen und Login Daten abfragen

  • C#
  • .NET (FX) 4.0

Es gibt 5 Antworten in diesem Thema. Der letzte Beitrag () ist von Trade.

    VC# -> PHP -> MySQL Sichere Verbindung aufbauen und Login Daten abfragen

    Hallo Freunde,

    ich habe ein großes Problem, undzwar arbeite ich mit einem Kollegen an einer Software. Diese benötigt eine sichere Verbindung auf eine MySQL Datenbank um dort ein Login durchzuführen.
    Die Registrierung eines Users geht über Wordpress und ich habe die MySQL Datenbank schon fertig. Leider hapert es bei mir mit dem PHP-Script, der die Daten dann von der MySQL Datenbank abfragt und sie dann an die Software sendet.

    Das Programm steht mir leider momentan nicht zur Verfügung, da der Kollege das hat und bis Donnerstag nächster Woche nicht da ist. Jetzt soll ich in der Zeit einen PHP-Script schreiben, bei dem das Programm Passwort und Username zusendet und diese Daten dann mit denen auf Der MySQL Datenbank überprüft und dann ausgibt, login erfolgreich oder falls falsch, login falsch oder so.

    Ich brauche dringend eure Hilfe, die Basics von PHP hab ich drauf aber das ist mir dann doch zu schwer.

    Das hat er mir geschrieben:
    Spoiler anzeigen
    namens login.pgp oder api.php
    die genau das macht was wir besprochen haben
    also man gibt als parameter login und pw unverschlüsselt mit
    ?username=mampf&pw=password
    dann gibt die seite entweder error aus oder
    ok|spotifyusername|spotifypasswort
    oder vlt noch pwwrong

    ... Falls man damit mehr anfangen kann ;)

    Vielleicht eine Anleitung oder direkt der Code wären Top!

    Danke im Voraus :) :D

    PS: Falls ich es in der Falschen Sektion geschrieben habe, tut mir leid :/ vllt wärt ihr dann ja so freundlich und verschiebt es :)

    Releases:
    IceTea | QR-Converter by NudelHolz - einfach Text & URL zu QR Konvertieren.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „NudelHolz“ ()

    Moin,

    wie sieht das aus: Seid Ihr euch darüber bewusst, dass man den Login umgehen kann und dass das Ganze wenn eine abgesicherte Verbindung via SSL benötigen würde?
    Ansonsten würde ich dann das Passwort an den Server senden, der dann dieses mit gesalzenem und gepfeffertem SHA256 hashed und mit dem gespeicherten Hash in der MySQL-Datenbank vergleicht.

    Am Besten sichert Ihr das dann doppelt und bildet mehrere Hashes, um das Passwort nicht im Klartext zu übertragen. In Zusammenarbeit mit SSL, was eig. ausreichen sollte, ist dies dann aber halt auf jeden Fall sicher.
    Ohne SSL-Zertífikat wird das allerdings nichts.

    Wenn Ihr nichts dagegen habt, dass halt das Ganze umgangen werden kann, da die Zielgruppe da nicht auf dem Stand ist, oder was weiß ich, dann haut es hin, ansonsten wird es schwer möglich. Sollte das eine Funktion sein, die für den Nutzen des Benutzers ist, fällt dieser Aspekt jedoch sowieso weg.
    Die PHP muss halt einfach dann die übergebenen Request-Parameter auswerten, diese davor aber auf jeden Fall escapen, da sonst Deine Datenbank ganz schnell gelöscht ist (SQL-Injections) und dann einfach das Zeug an die Datenbank schicken und abfragen.
    Dafür gibt es mysqli usw., aber ich würde zu PDO bzw. Prepared Statments raten. Inwiefern das mit denen gut funktioniert, kann ich Dir nicht sagen, bin kein solcher PHP-Typ, aber nur mal als Tipp.

    Grüße
    #define for for(int z=0;z<2;++z)for // Have fun!
    Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose! :saint:

    Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da :!:

    Trade schrieb:

    wie sieht das aus: Seid Ihr euch darüber bewusst, dass man den Login umgehen kann und dass das Ganze wenn eine abgesicherte Verbindung via SSL benötigen würde?
    Ansonsten würde ich dann das Passwort an den Server senden, der dann dieses mit gesalzenem und gepfeffertem SHA256 hashed und mit dem gespeicherten Hash in der MySQL-Datenbank vergleicht.

    Das ist dann die 2e Stufe wir hatten es dann zum Schluss vor mit sha256 zu verschlüsseln.. Hast du denn einen Ansatz für mich Lieber Trade? :)

    Releases:
    IceTea | QR-Converter by NudelHolz - einfach Text & URL zu QR Konvertieren.

    EaranMaleasi schrieb:

    sha256 ist eine Hash-Funktion, keine Verschlüsselung! Damit kann man nur einen Weg gehen, nicht den anderen.


    Ja entschuldigung, den Fehler mach ich oft :D

    Releases:
    IceTea | QR-Converter by NudelHolz - einfach Text & URL zu QR Konvertieren.
    SHA256 ist keine Verschlüsselung, sondern ein Hash, also nicht umkehrbar. ;)
    Edit:// Oh, zu spät.

    Erster Ansatz wäre ein SSL-Zertifkat, wie sieht's damit aus?
    Wo gibt es denn aktuell genau Probleme? Zum Berechnen des Hashes via C# braucht man nur die SHA256Managed-Klasse. Das halt, wenn man z. B. doppelt hashen möchte.

    Ihr braucht halt dann 2 PHP-Scripts, eins für die Registrierung und eins für den Login. Dort wird dann das Passwort, das übergeben wurde, serverseitig gehashed und der Hash + Salz in der Datenbank gespeichert. Der Pfeffer ist ja eine konstante Zeichenfolge, die, wie das Salz auch, zufällig generiert werden sollte.
    stackoverflow.com/questions/15…with-blowfish-salt-pepper

    Da ist mal eine Anregung. Vergesst auch nicht, die Parameter zu escapen. Dann einfach via C# die URL des Scripts aufrufen, die Parameter via ?username=test&password=... anhängen und fertig. Den Rest erledigt das Script.
    Ansonsten beim Login einfach dann die Abfrage auswerten und ausgeben. Diese Ausgabe kann man dann am Ende mit dem C#-Client auslesen und in einen bool parsen.

    Die MySQL-Credentials können dann btw auch plain im Script stehen, da die eh niemand zu Gesicht bekommt, solange er nicht auf dem Webserver unterwegs ist und Dateien sieht, da PHP durch den Interpreter immer ausgeführt wird.

    Grüße
    #define for for(int z=0;z<2;++z)for // Have fun!
    Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose! :saint:

    Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da :!: