SQL Injektion verhindern

  • VB.NET

Es gibt 3 Antworten in diesem Thema. Der letzte Beitrag () ist von INOPIAE.

    SQL Injektion verhindern

    Hallo,

    ich habe nach einer Pause nun wieder hierhergefunden.

    Damals hatte ich eine typische "youtube"-Benutzeranmeldung benutzt.

    VB.NET-Quellcode

    1. Dim d As OleDbCommand = New OleDbCommand("SELECT * FROM Tabelle1 WHERE Benutzer = '" & TextBox1.Text & "' AND Passwort = '" & TextBox2.Text & "'", con)
    2. Dim dd As OleDbDataReader = d.ExecuteReader
    3. If dd.Read() = True Then
    4. MsgBox("Anmeldung erfolgreich")
    5. End If


    Ich wurde damals schon auf SQL-Injektions aufmerksam gemacht, hatte dem aaber ehrlich gesagt keine Beachtung geschenkt.
    Das möchte ich jetzt aber besser machen.

    Ich hatte versucht eine eigene Injektion ausgeführt.

    VB.NET-Quellcode

    1. ​Eintrag'); DROP TABLE Tabellenname; --
    Das hat aber nicht geklappt.
    Kann es sein, dass das von Access nun doch verhindert wird? Wie kann ich meine Anmeldung / Datenbank schützen?
    Einen Anmerkung aus einer anderen Sichtweise. Dein SQL-Statement liest sich so, als ob Du das Passwort in der Datenbank im Klartext abspeicherst. Dies ist ein absolutes NoGo.

    Des Weiteren, wenn wird über Access reden, heißt das doch es wird Windows genutzt. Hänge Deine Rechteverwaltung doch einfach an den Windowsbenutzer.
    NB. Es ist doch schön, wenn man lesbare Namen vergibt. Siehe auch [VB.NET] Beispiele für guten und schlechten Code (Stil).