M skrev:
> Nej, ikke ved at adskille dem med semikolon, men Peter
> Lykkegaard påpeger, at der er workarounds, og dem er jeg meget
> interesseret i.
Nu ved jeg ikke lige hvilke workarounds Peter tænker på - men så
vidt jeg ved drejer det sig om at man kan flette en select ind i en
anden select:
SELECT * FROM tabel1 WHERE felt1 = <formfelt>
kan blive til
SELECT * FROM tabel1 WHERE felt1 = 0 OR 1 = 1
eller
SELECT * FROM tabel1 WHERE felt1 = (SELECT felt2 FROM tabel2)
etc.
Men det er ikke et specielt stort sikkerhedsproblem, fordi du for
det første kun kan flette select-forespørgsler ind i en select-
forespørgsel (man kan altså ikke kombinere en select med en
delete), og for det andet fordi der ikke kan ændres ved de felter
du trækker ud. Det gælder dog kun sålænge det kun er kriterier der
flettes ind i sql-sætningen.
Altså - hvis den variable del af din sqlsætning først begynder
efter WHERE, så er det eneste risikable der kan ske at der
returneres andre data end dem du gerne vil have vist. Hvis man
benytter variable handlingsforespørgsler på nettet skal man være
mere varsom - her kan en uvelkommen ændring få store konsekvenser.
--
Jens Gyldenkærne Clausen
MF (medlem af FIDUSO -
www.fiduso.dk)
I ovenstående tekst benyttes nyt komma
(rettelser modtages gerne i dk.kultur.sprog)