Sida 1 av 1
Inkludera stryrande tecken i MySQL?!
Postat: 02 mar 2007, 13:13
av rancor
Hej.
Jag sitter och skall förhindra SQL injections vilket är förhållandevis enkelt. Jag tillåter endast t.ex. stora, små, space och siffror.
Men jag vill t.ex. att info-fält skall få innehålla '%|"&@-tecken.
Jag lekte att base64-koda allt innan jag skickade över datat till sql-servern där jag dekoda skiten och det blev inte lyckat.
Hur överför ni tecken som normalt sätt MySQL skulle tolka som kommande, avslut av kommando och liknande och sparar dem som värden i databasen?
Blir inte klok på detta
SV: Inkludera stryrande tecken i MySQL?!
Postat: 02 mar 2007, 13:15
av rancor
och varför lyckas SMF skjuta in mitt meddelande

jag angav både ' som avslut av strängen och | som kommando-avslutning.
Jag tror ju även här så kodas texten om och sparas på annat sätt.. fast jag kan inte php så det känns enklare att fråga dem som vet

SV: Inkludera stryrande tecken i MySQL?!
Postat: 05 mar 2007, 09:46
av Azreal
rancor skrev:
Hej.
Jag sitter och skall förhindra SQL injections vilket är förhållandevis enkelt. Jag tillåter endast t.ex. stora, små, space och siffror.
Men jag vill t.ex. att info-fält skall få innehålla '%|"&@-tecken.
Jag lekte att base64-koda allt innan jag skickade över datat till sql-servern där jag dekoda skiten och det blev inte lyckat.
Hur överför ni tecken som normalt sätt MySQL skulle tolka som kommande, avslut av kommando och liknande och sparar dem som värden i databasen?
Blir inte klok på detta
Jag skulle nog kontrollera indata med regular expressions och se om förbjudna mönster förekommer.
Vilker språk använder du dig utav?
SV: Inkludera stryrande tecken i MySQL?!
Postat: 05 mar 2007, 10:09
av Barre
SV: Inkludera stryrande tecken i MySQL?!
Postat: 05 mar 2007, 13:29
av rancor
Jag använder ASP 3.0 och för tillfället har jag löst problemet såhär.
Kod: Markera allt
Function FixInput4MySQL(sInput)
Dim s_FixInputRawdata
s_FixInputRawdata = sInput
s_FixInputRawdata = Replace(s_FixInputRawdata, "'", "''")
s_FixInputRawdata = Replace(s_FixInputRawdata, "\", "\\")
s_FixInputRawdata = Replace(s_FixInputRawdata, """", "\""")
FixInput4MySQL = s_FixInputRawdata
End Function