Jens GyldenkærneClausen skrev:
> Christian Kragh skrev:
>
> > Nu er jeg dog igang med at redesigne min side og ønsker derfor at
> > gå fra simpel replace af de mest almindelige tegn for at undgå
> > indjection af mine SQL strenge når brugeren logger ind, således
> > at det kun er bestemte tegn som er tilladt.
>
> Hvis du escaper korrekt (erstatter ' med ''), skulle det sådan set
> være nok.
Ahh, pas lige på her... Du mener måske det rigtige, men det er kun nok
at erstatte ' med '' hvis det er tekst-felter vi snakker om!
Eksempel:
Hvis man udtrækker en artikel ud af idnummer:
SELECT artikel FROM Artikler WHERE id = [id]
hvis [id] er et nummer, der fx tages fra querystring, så duer det ikke
hvis [id] indeholder
-1 UNION SELECT kodeord FROM Bruger WHERE id = 1
Det kunne lede til at i stedet for at udtrække artiklen, så skrev den
kodeordet for den første bruger (administrator?) på siden.
Eller hvis man benytter en mere avanceret database end Access, så
ville denne her heller ikke være god:
-1; DROP TABLE Brugere
Så hvis det er et numerisk felt, så bør man undersøge om værdien også
er numerisk inden den puttes ind, osv osv for forskellige
situationer...
mvh Torben
--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! =>
http://www.html.dk/tutorials