Citat:
Ursprungligen postat av webDing
Som jag ser det (men jag skriver nästan aldrig ASP så jag kan ha missat något) så har du bara siffror i de mottagna värdena.
Om du kontrollerar att inga bokstäver finns med, vilket borde vara enklast med hjälp av RegEx (M$ stödjer väl RegEx, eller har dom hittat på något eget?), så kan ingen SQL kod komma med.
Det är sällan man har så enkla parametrar att hantera...

Mja, det är väl betydligt enklare att bara köra "If isNumeric..." på formvärdena istället för att scripta en hel RegExp-funktion, väl?
Med isNumeric utesluter du ju dessutom alla tecken som skulle kunna användas för att göra en injection.
Ex:
Function stopInjection(formFld)
If isNumeric(formFld) Then
' Grönt!
stopInjection = formFld
Else
' Red alert!
' Avbryt allt, skicka felmeddelande etc...
End If
End Function
tid = Date 'Startdatum
tid = DateAdd("d",30,tid)
IF NOT Request.ServerVariables("REMOTE_ADDR") = "217.75.102.141" then
response.end
end if
nr = stopInjection(request("nr"))
sms = stopInjection(request("sms"))
user = stopInjection(right(sms, len(sms)-14))
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & server.mappath ("databasen")
SQL="UPDATE Tabell Set vip='1', datum='"& tid &"' WHERE anv='"& user &"'"
Connect.Execute(SQL)
tariff = request("tariff")
operator = request("operator")
response.write "Vi har nu tagit emot ditt SMS!<br>Du är nu promedlem i 30dagar"