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...
Annonceindlæg fra Conscia
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!
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) ?
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