|
| ASP Sikkerhed? Fra : Lasse T. Jensen |
Dato : 08-12-08 13:34 |
|
Hej List users
Jeg er i gang med sikkere et IIS,ASP,MSSQL site da det gentagene gange
har være lagt ned pga. sql injection, løsningen må være indholds
filtrering af form data fra malisius usere til serveren, så KUN ascii
karaktere kan overføres til serveren, sitet ser sådan ud:
1. bruger oprettelse med udfyldelse af mail adresse og ønsket bruger
navn og password
2. bekræftigelse kommer til brugeren via mail
3. brugeren kan så logge ind og sende post, chatte og lave opslag på en
slags opslags tavle til og med de andre users.
Min makker og jeg er meget uenige om hvordan vi klare problemet
bla. pga. der er brugere der ønsker at kunne bruge skråstreger mm. og
der er brugere der allerede har underlige non ascii tegn i deres
usernames, jeg mener vi skal ligge global indholds filtrering på alt
data der bliver send til serveren altså både tekst felter, emmne felter
og bruger navne felter, og alle non ascii tegn skal filtreret væk så
alle tekst felter bliver filtreret og kun ascii tegn er lovlige altså
ingen stråstreger kun alfabetet i store og små bogstaver og minus streg
kan lige tillades.
Skulle der være nogen der måtte ha´ en mening om dette eller har
praktisk erfaring med dette? ville jeg blive glad hvis i ville give et
lille fif om dette.
Hilsen Lasse
| |
Alex Holst (08-12-2008)
| Kommentar Fra : Alex Holst |
Dato : 08-12-08 14:41 |
|
Lasse T. Jensen <and0806@yahoo.dk> wrote:
> Jeg er i gang med sikkere et IIS,ASP,MSSQL site da det gentagene gange
> har vaere lagt ned pga. sql injection, losningen ma vaere indholds
> filtrering af form data fra malisius usere til serveren, sa KUN ascii
> karaktere kan overfores til serveren,
I skal kommunikere med databasen p? en m?de, s? brugerinput ikke ender
med at blive kommandoer, men i stedet ender i databasen. S? kan I v?re
komplet ligeglade med hvad folk h?lder ind i jeres system.
http://aspalliance.com/385
--
I prefer the dark of the night, after midnight and before four-thirty,
when it's more bare, more hollow. http://a.mongers.org/
OSS/FAQ for dk.edb.sikkerhed: http://sikkerhed-faq.dk/
| |
Kent Friis (08-12-2008)
| Kommentar Fra : Kent Friis |
Dato : 08-12-08 16:10 |
|
Den Mon, 08 Dec 2008 13:33:55 +0100 skrev Lasse T. Jensen:
> Hej List users
>
> Jeg er i gang med sikkere et IIS,ASP,MSSQL site da det gentagene gange
> har være lagt ned pga. sql injection, løsningen må være indholds
> filtrering af form data fra malisius usere til serveren, så KUN ascii
> karaktere kan overføres til serveren, sitet ser sådan ud:
Der bruges kun ascii til SQL-injection. At filtrere andet fra hjælper
ikke.
> Min makker og jeg er meget uenige om hvordan vi klare problemet
> bla. pga. der er brugere der ønsker at kunne bruge skråstreger mm. og
> der er brugere der allerede har underlige non ascii tegn i deres
> usernames,
Nemlig.
> jeg mener vi skal ligge global indholds filtrering på alt
> data der bliver send til serveren altså både tekst felter, emmne felter
> og bruger navne felter, og alle non ascii tegn skal filtreret væk så
> alle tekst felter bliver filtreret og kun ascii tegn er lovlige altså
> ingen stråstreger kun alfabetet i store og små bogstaver og minus streg
> kan lige tillades.
Nu skriver du ASP, er det 1900-tals ASP, eller er det ASP.NET?
Hvis det er .NET, så brug SqlParameter, den løser problemet.
Mvh
Kent
--
Hvis en sort kat går over vejen foran en bil, betyder det ulykke
.... for katten.
| |
Lasse T. Jensen (17-12-2008)
| Kommentar Fra : Lasse T. Jensen |
Dato : 17-12-08 17:25 |
|
Kent Friis skrev:
>
> Der bruges kun ascii til SQL-injection. At filtrere andet fra hjælper
> ikke.
>
> Mvh
> Kent
Kan ikke forstå hvordan man kan lave en injection med kun
abcdefghijklmnopqrstuvwxyzæøå
ABCDEFGHIJKLMNOPQRSTUVWXYZÆØÅ
@ og -
det er muligt at stored procedures er en mere "ren" løsning
men enlight me please
/Lasse
| |
Andreas Plesner Jaco~ (17-12-2008)
| Kommentar Fra : Andreas Plesner Jaco~ |
Dato : 17-12-08 17:50 |
|
On 2008-12-17, Lasse T. Jensen <and0806@yahoo.dk> wrote:
>>
>> Der bruges kun ascii til SQL-injection. At filtrere andet fra hjælper
>> ikke.
>
> Kan ikke forstå hvordan man kan lave en injection med kun
> abcdefghijklmnopqrstuvwxyzæøå
> ABCDEFGHIJKLMNOPQRSTUVWXYZÆØÅ
> @ og -
ASCII indeholder meget mere, bl.a. ' og ;
> det er muligt at stored procedures er en mere "ren" løsning
Der blev talt om placeholders, ikke stored procedures.
Det er ikke bare en mere ren løsning, det er en kønnere og fuldstændig
korrekt løsning på problemet. Hvis du bruger denne metode hver gang får
du løst problemet en gang for alle og skal ikke til at tænke på hvilke
tegn du vil acceptere hver gang.
--
Andreas
| |
Niels Baggesen (17-12-2008)
| Kommentar Fra : Niels Baggesen |
Dato : 17-12-08 18:09 |
|
Andreas Plesner Jacobsen <apj@daarligstil.dk> wrote:
> On 2008-12-17, Lasse T. Jensen <and0806@yahoo.dk> wrote:
> > Kan ikke forstå hvordan man kan lave en injection med kun
> > abcdefghijklmnopqrstuvwxyzæøå
> > ABCDEFGHIJKLMNOPQRSTUVWXYZÆØÅ
> > @ og -
> ASCII indeholder meget mere, bl.a. ' og ;
men til gengæld ikke æøå
/Niels
--
Niels Baggesen -- @home -- Århus -- Denmark -- niels@baggesen.net
The purpose of computing is insight, not numbers -- R W Hamming
| |
Andreas Plesner Jaco~ (17-12-2008)
| Kommentar Fra : Andreas Plesner Jaco~ |
Dato : 17-12-08 18:25 |
|
On 2008-12-17, Niels Baggesen <nba@users.sourceforge.net> wrote:
>> > Kan ikke forstå hvordan man kan lave en injection med kun
>> > abcdefghijklmnopqrstuvwxyzæøå
>> > ABCDEFGHIJKLMNOPQRSTUVWXYZÆØÅ
>> > @ og -
>
>> ASCII indeholder meget mere, bl.a. ' og ;
>
> men til gengæld ikke æøå
Korrekt, jeg havde ikke lige opdaget at de havde sneget sig ind.
--
Andreas
| |
Kent Friis (17-12-2008)
| Kommentar Fra : Kent Friis |
Dato : 17-12-08 19:41 |
|
Den Wed, 17 Dec 2008 18:08:30 +0100 skrev Niels Baggesen:
> Andreas Plesner Jacobsen <apj@daarligstil.dk> wrote:
>> On 2008-12-17, Lasse T. Jensen <and0806@yahoo.dk> wrote:
>> > Kan ikke forstå hvordan man kan lave en injection med kun
>> > abcdefghijklmnopqrstuvwxyzæøå
>> > ABCDEFGHIJKLMNOPQRSTUVWXYZÆØÅ
>> > @ og -
>
>> ASCII indeholder meget mere, bl.a. ' og ;
>
> men til gengæld ikke æøå
Dem får man til gengæld svært ved at injecte noget som helst med
Mvh
Kent
--
Hvis en sort kat går over vejen foran en bil, betyder det ulykke
.... for katten.
| |
Stig Johansen (18-12-2008)
| Kommentar Fra : Stig Johansen |
Dato : 18-12-08 16:16 |
|
Lasse T. Jensen wrote:
> Kan ikke forstå hvordan man kan lave en injection med kun
> abcdefghijklmnopqrstuvwxyzæøå
> ABCDEFGHIJKLMNOPQRSTUVWXYZÆØÅ
> @ og -
Nu er det et stærkt begrænset 'karaktersæt' du beskriver her, og der kan det
muligvis ikke lade sig gøre.
Men SQL injection er på ingen måde begrænset til 'form data'.
Det kan ligeså godt være ved en eks. ?page=12 med deraf følgende database
opslag.
Jeg har lavet en lille gennemgang af den SQL injection bølge der fes rundt
nogle gange i forsommeren - qden kan måske give en ide om hvordan det
foregår.
< http://w-o-p-r.dk/storm.monitor/SQL.injection/how.it.is.done.asp>
> det er muligt at stored procedures er en mere "ren" løsning
> men enlight me please
Som Andreas skriver skal du skelne mellem stored procedures og parameterized
queries/placeholders/prepared queries[1].
En stored procedure der ikke er 'parameterized' er lige så usikker som alt
andet.
[1] Vokabulariet afhænger af hvilket miljø man befinder sig i.
--
Med venlig hilsen
Stig Johansen
| |
Stig Johansen (08-12-2008)
| Kommentar Fra : Stig Johansen |
Dato : 08-12-08 21:54 |
|
Lasse T. Jensen wrote:
> Skulle der være nogen der måtte ha´ en mening om dette eller har
> praktisk erfaring med dette? ville jeg blive glad hvis i ville give et
> lille fif om dette.
Du skal bare bruge parameterized Queries, så er den ged barberet.
Der er ikke behov for filtrering, som nedsætter brugbarheden.
Hvis du ikke ved hvordan, så spørg ovre i
dk.edb.internet.webdesign.serverside.asp
så er der nok nogle der vil hjælpe.
--
Med venlig hilsen
Stig Johansen
| |
|
|