webForumDet fria alternativet

SQL injections

6 svar · 561 visningar · startad av Asa

AsaMedlem sedan dec. 20011 860 inlägg
#1

Hur ska jag komplettera denna koden? Det var nån som sa till mig att detta inte räcker.

Public Function FixSQL(ByVal sString) ' As String  
    If Len("" & sString) = 0 Then Exit Function  
    sString = Replace(sString, "'","''")  
    sString = Replace(sString, "\","\\") 
    FixSQL = sString  
End Function
voigtann1Medlem sedan juni 20019 519 inlägg
#2

du får nog fråga den där personen vad han/hon menar.
Det kan ju göras så att du ha en parameter som kontrollera vad den skall kontrollera för typ av indata, så om du vill kontrollera att det du matar in är ett tal osv. Men mot SQL-injection så på tal så se till att kovertera indatan till ett tal innan du kör den:
exempelvis:

Select * from bob where userId = " & Request.Querystring("userID")

Skall vara:

Select * from bob where userId = " & CLng(Request.Querystring("userID"))

osv.

AsaMedlem sedan dec. 20011 860 inlägg
#3

Måste nog vara det som personen menar då..

spangoMedlem sedan juni 20008 205 inlägg
#4

Sen är själva tanken bakom escapefunktioner ganska trasig, det är skitmycket smartare att använda parametriserade frågor så slipper man komma ihåg att quota varenda värde varenda gång, plus att man slipper oroa sig för buggar i escapefunktionen.

AsaMedlem sedan dec. 20011 860 inlägg
#5

parametriserade frågor?

spangoMedlem sedan juni 20008 205 inlägg
#6

Sök, och du skall finna.

ZaimanMedlem sedan dec. 20014 239 inlägg
131 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)