Visa ett inlägg
Oläst 2004-06-16, 09:57 #8
Roberts avatar
Robert Robert är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Jan 2004
Inlägg: 2 103
Robert Robert är inte uppkopplad
Klarade millennium-buggen
Roberts avatar
 
Reg.datum: Jan 2004
Inlägg: 2 103
Du gör nu så här:

Kod:
Recordset1.Source = "SELECT * FROM vardschema WHERE VARDSCHEMA_ID=" & Request.Querystring("SCHEMA_ID")
...och det är livsfarligt att bara ta den parameter som (någon) har skrivit i url'en och skicka in i din sql sats.

Anta att din url är www.xyz.se/sida.asp?VARDSCHEMA_ID=8376453

Om jag skriver in en sql sats, tex "0 or 1=1;DROP TABLE users--&apa=1" så blir det såhär

www.xyz.se/sida.asp?VARDSCHEMA_ID=0 or 1=1;DROP TABLE users--&apa=1

Din SQL som du kör nu blir således

Kod:
SELECT * FROM vardschema WHERE VARDSCHEMA_ID=0 or 1=1;DROP TABLE users--
Det är samma sak som att man kan logga in många oskyddade system genom att skriva texten

Kod:
' or 1=1--
så man blir det första användaren i ett oskyddat system.

Jaja, nog om detta nu.

Validering sa du, japp, typ att du först requestar ett värde och tilldelar en variabel som du sedan kollar så att den är ok, typ

Kod:
dim sInput
sInput = Request.Querystring("VARDSCHEMA_ID") 'hämta värde
sInput = trim(sInput) ' ta bort alla "trailing spaces" som webläsaren/användaren kan ha pillat dit
sInput = replace(sInput, "'", "&quote;") 'ersätter ' med "

Recordset1.Source = "SELECT * FROM vardschema WHERE VARDSCHEMA_ID=" & sInput
Nu skrev jag sInput valideringarna på olika rader för tydlighetens skull, och valideringarna i sig var bara exempel. Det du antagligen vill göra är att kolla så att ditt VARDSCHEMA_ID är numerisk, har en viss längd och uppfyller olika krav INNAN du kör den i din sql sats.
Robert är inte uppkopplad   Svara med citatSvara med citat