webForumDet fria alternativet

Enkelt sätt att säkra request

ASP

6 svar · 6 087 visningar · startad av Melitta

Medlem sedan sep. 2003448 inlägg
Frågan#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?

Medlem sedan juni 200032 967 inlägg
#2

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

Medlem sedan sep. 2003448 inlägg
#3

Jo jag är medveten om det, slarvigt av mig, sry..

Medlem sedan juni 200032 967 inlägg
#4

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?

Medlem sedan juni 20003 076 inlägg
#5

@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!

Medlem sedan juni 200032 967 inlägg
#6

Ja, till och med det! Jag såg inte ens lcase där...

Skulle vara kul att höra hur Melitta tänkt. ;)

Medlem sedan juni 2000690 inlägg
#7

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

370 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
127 ms — deklarationer (db)
0 ms — hämta statistik (cache)
241 ms — hämta tråd, inlägg och bilagor (db)
127 ms — ändringar (db)