webForumDet fria alternativet

SQL injections

ASP

6 svar · 563 visningar · startad av Asa

Medlem sedan dec. 20011 860 inlägg
Frågan#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
Medlem 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.

Medlem sedan dec. 20011 860 inlägg
#3

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

Medlem 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.

Medlem sedan dec. 20011 860 inlägg
#5

parametriserade frågor?

Medlem sedan juni 20008 205 inlägg
#6

Sök, och du skall finna.

Medlem sedan dec. 20014 239 inlägg
250 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
117 ms — deklarationer (db)
0 ms — hämta statistik (cache)
130 ms — hämta tråd, inlägg och bilagor (db)
116 ms — ändringar (db)