Melitta Medlem sedan sep. 2003 448 inlägg Frågan 30 jan. 2007 15:19 #1 Ett enkelt sätt att säkra request.form och request.query mot sql injection plus att det blir så mycket mindre att skriva :)
function safeQ(q)
q = trim(request.querystring(q))
q = replace(q,"'","& #39;")
q = replace(q,";","& #59;")
q = replace(q,"/","& #47;")
safeQ = q
end function
function safeF(q)
q = trim(request.form(q))
q = replace(q,"'","& #39;")
q = replace(q,";","& #59;")
q = replace(q,"/","& #47;")
safeF = q
end function
Ta bort mellanrummen..
Funktionen används:
strTitle = safeQ("titel")
strTitle = safeF("titel")
Edit\
Har förmodligen inte tänkt alls, frågan är om allt blev rätt denna gång, vad finns det mer för tecken man bör skydda sig mot?
@nders Medlem sedan juni 2000 32 967 inlägg Må vara ett enkelt sätt, men ett felaktigt sätt, då du förstör datat i strängarna.
En apostrof skall ersättas med två (en ren escape alltså), inte tas bort.
Under förutsättning att vi pratar om Microsoft-databaser. Annars är det ju normalt sett backslash som är escape-tecken...
Med din funktion blir can't cant, won't blir wont, och McDonald's blir McDonalds.
Förstör inte datat, rädda det.
Mvh
Melitta Medlem sedan sep. 2003 448 inlägg Jo jag är medveten om det, slarvigt av mig, sry..
@nders Medlem sedan juni 2000 32 967 inlägg
Melitta skrev:
Jo jag är medveten om det, slarvigt av mig, sry..
Men visst kan man väl redigera inlägg även i script-forumen?
@nders skrev:
Med din funktion blir can't cant, won't blir wont, och McDonald's blir McDonalds.
Det är värre än så, McDonald's blir mcdonalds, dvs bara små bokstäver!
@nders Medlem sedan juni 2000 32 967 inlägg Ja, till och med det! Jag såg inte ens lcase där...
Skulle vara kul att höra hur Melitta tänkt. ;)
B Bengan Medlem sedan juni 2000 690 inlägg Räcker inte detta?
Function FixaTecken(sfix)
sfix = Replace(Trim(sfix), "'", "''")
sfix = Replace(sfix, "|", "")
FixaTecken = sfix
End Function
Det räcker väl egentligen med apostrofen? Kommer inte ihåg varför | togs bort. :r