Avatar billede Slettet bruger
26. maj 2010 - 15:27 Der er 4 kommentarer og
1 løsning

Datavask imod SQL-injection

Er dette så sikkert som jeg tror det er (dvs. 100%) ?

$result = mysql_query( "SELECT diller, daller FROM userZop WHERE UiD='".((int)$HTTP_COOKIE_VARS["UiD"])
."'" );

En UiD er altid et stort heltal (base 10).
- men aldrig større end 999.999.999.999 (uden punktummer, selvfølgelig)

Jeg bruger lignende opslag en million milliard steder i koden
- så målet er at vaske inputtet med så lidt sæbe som muligt...
Avatar billede arne_v Ekspert
26. maj 2010 - 15:33 #1
Saa vidt jeg kan se, saa faar castet til int fjernet diverse snavs.

Men jeg synes ikke at der er nogen speciel god loesning.

Den er nemlig kun brugbar med tal.

En maade at haandtere tal paa og en anden at haandtere strenge paa er efter min mening noget rod.

mysqli og prepared statement (eller PDO og samme) er vejen frem.

Indroemmet - det er en hel saebefabrik!
Avatar billede Slettet bruger
26. maj 2010 - 15:47 #2
"prepared statements"
- Er det ikke, når en Venstre-mand "tager en åben og ærlig diskussion"

Pjat, jeg vil læse op på det, tak : )


Til strengene havde jeg tænkt at "nøjes med" addslashes() og stripcslashes()
- er det ikke nok (gisp) ?
Avatar billede arne_v Ekspert
26. maj 2010 - 16:00 #3
addslashes er decideret en daarlig loesning.

Der er nogle skumle huller via kinesiske tegnsaet og lignende.

mysql_real_escape_string er samme ide og boer virke.

Men mysqli og prepared statement er en 2010 loesning - mysql_real_escape_string er en 2005 loesning.
Avatar billede Slettet bruger
26. maj 2010 - 16:31 #4
Hvor er jeg glad for at jeg spurgte!

mysql_real_escape_string() er jo meget lettere end add/stripslashes
- man slipper helt for at strippe :)

Og de "skumle huller" selvfølgelig - den værste slags.

Tak for advarslen.
- men jeg tror alligevel jeg gemmer mysqli og prepared statements til næste projekt..

Læg et svar og få din bekomst
Avatar billede arne_v Ekspert
26. maj 2010 - 16:38 #5
svar
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester