KlauzMedlem sedan jan. 2005133 inlägg Försöker göra en inmatningssäker valideringsfunktion! Har kommit såhär långt, men har fortfarande problem.
<% Function ReplaceSpecialChars(arg)
strReplaceTemp = arg
If not isNull(strReplaceTemp) then
strReplaceTemp = replace(strReplaceTemp,"&","och")
strReplaceTemp = replace(strReplaceTemp,"<","")
strReplaceTemp = replace(strReplaceTemp,">","")
strReplaceTemp = replace(strReplaceTemp,"'","''")
strReplaceTemp = replace(strReplaceTemp,"""",""")
End if
ReplaceSpecialChars = strReplaceTemp
strReplaceTemp = ""
End function %>
Databasen för inmatningarna är en Access-db. Det går fortfarnade inte att infoga " (citattecken) , vet inte vad som är fel. Har testat med både ' och " - tecken. Det går ju inte att köra Replace(string, """, "'"), finns det nåt alternativ?
Ge gärna tips på fler osäkra tecken som jag kan Replace:a i funktionen! :)
@ndersMedlem sedan juni 200032 969 inlägg Re: Inmatningssäker databas
Jag förstår inte varför du replacear <, >, & och ".
Av de tecknen du har i din funktion kan jag inte se att något annat än apostrof skulle vara farligt att mata in i databasen.
Jag skulle alltså tagit bort de ersättningarna.
Sedan: snälla, använd [kod]-taggar när du postar kod, så går koden lättare att läsa.
mvh
mrblondeMedlem sedan aug. 20012 349 inlägg Du behöver bara ta hand om ' när du sparar data. Sen när du skall visa det på din webbsida så använd Server.HTMLEncode(strDinVariablemMedData) så ser den till att inte <> mm blir problematiskt.
KlauzMedlem sedan jan. 2005133 inlägg Alright, tack för tipset med HTMLEncode!
Anledningen till de "onödiga" tecknen är att den även ska funka att skicka innehållet till Flash-filer. Där brukar &-tecknet strula till det.
Ska bättra mig när det gäller att visa kodsnuttar! :r
@ndersMedlem sedan juni 200032 969 inlägg
Klauz skrev:
Anledningen till de "onödiga" tecknen är att den även ska funka att skicka innehållet till Flash-filer. Där brukar &-tecknet strula till det.
Du bör i alla fall inte förstöra datat innan du stoppar in det i databasen. Gör förändringarna endast vid "utskriften" till flash-filen. Server.HTMLEncode som mrblonde tipsar om borde ta hand om det mesta. :)
mvh
K@llenMedlem sedan mars 20032 667 inlägg
mrblonde skrev:
Du behöver bara ta hand om ' när du sparar data. Sen när du skall visa det på din webbsida så använd Server.HTMLEncode(strDinVariablemMedData) så ser den till att inte <> mm blir problematiskt.
Inte enligt detta svar:
http://www.webforum.nu/showthread.php?s=&postid=980558#post980558
Ser fram emot en mer utförlig beskrivning från emissions sida. För detta har också varit min tro. :)
KlauzMedlem sedan jan. 2005133 inlägg htmlencode
ok , är det dumt att köra Server.HTMLEncode när man infogar datan i db istället för när man skriver ut den?
Är det numeriska, booleanska eller datumvärden så blir det ju en annan femma. Dock löser det sig oftast om man gör en typskonvertering.
Ett annat fall där det kan blir problem:
sql = "SELECT * FROM tblFoo ORDER BY " & Request("OrderBy")
Klauz: Ja. Modifiera inte datan innan du stoppar in den i databasen.
@ndersMedlem sedan juni 200032 969 inlägg Ja, det är dumt att förändra datat. Datat tar mer plats och är inte lika sökbart om du förstör innehållet.
Mvh