Hallo liebe Community,
wie der Titel bereits sagt, beschäftige ich mich zurzeit mit dem Thema SQL Injection, allerdings bin ich in diesem Thema ein absoluter Neuling. Ich weiß nur, dass es möglich ist einen SQL-String so zu manipulieren, dass die Datenbank komplett ausgelesen werden kann und sogar gelöscht werden kann. Dies soll in meinem Programm nicht möglich sein, daher habe ich etwas im Internet gesucht und bin direkt bei Wikipedia auf eine Lösung gestoßen. Allerdings würde ich mich doch vorher absichern, weil Wikipedia ja nicht unbedingt die sicherste Quelle ist
Dort steht:
So wie es scheint wird hier über Append das ? mit Text ersetzt. Ist dies sicher?
Wenn ja, ist es auch möglich zwei ? einzufügen?
Also z.B.
Mit freundlichen Grüßen
KronSii
wie der Titel bereits sagt, beschäftige ich mich zurzeit mit dem Thema SQL Injection, allerdings bin ich in diesem Thema ein absoluter Neuling. Ich weiß nur, dass es möglich ist einen SQL-String so zu manipulieren, dass die Datenbank komplett ausgelesen werden kann und sogar gelöscht werden kann. Dies soll in meinem Programm nicht möglich sein, daher habe ich etwas im Internet gesucht und bin direkt bei Wikipedia auf eine Lösung gestoßen. Allerdings würde ich mich doch vorher absichern, weil Wikipedia ja nicht unbedingt die sicherste Quelle ist
Dort steht:
Anstatt
sollte Folgendes verwendet werden:
Visual Basic-Quellcode
- Dim cmd As ADODB.Command, rs as ADODB.Recordset
- With cmd
- Set .ActiveConnection = cn
- Set .CommandType = adCmdText
- .CommandText = "SELECT spalte1 FROM tabelle WHERE spalte2 = ?"
- .Parameters.Append .CreateParameter("paramSp2", adVarChar, adParamInput, 25, spalte2Wert) '25 ist die max. länge
- Set rs = .Execute
- End With
So wie es scheint wird hier über Append das ? mit Text ersetzt. Ist dies sicher?
Wenn ja, ist es auch möglich zwei ? einzufügen?
Also z.B.
Mit freundlichen Grüßen
KronSii