Avatar billede mstorgaard Praktikant
04. november 2006 - 17:01 Der er 7 kommentarer og
1 løsning

Sikkerhed i forhold til $_POST og $_GET i mysqlquery

Jeg havde lavet et login-script, og havde postet det på Eksperten, hvorefter jeg fik noget hjælp med sikkerheden.
I den forbindelse fik jeg en lille reminder om at man _ALDRIG_ må indsætte en $_POST eller $_GET værdi direkte i en MySQL-query.
Udvikler: "Du må _ALDRIG_ indsætte en POST eller GET værdi direkte ind i en MySQL kode, du skal først lave den om til en variabel og tjekke den."

1. Hvorfor må man ikke det?
2. Gælder reglen også for $_SESSION og $row?
3. Hvordan tjekker man dem?
Avatar billede coderdk Praktikant
04. november 2006 - 17:03 #1
Det må du også godt, men du skal ALTID checke brugerinput. En måde ville være:

$sql = "UPDATE tabel SET tekstfelt = '" . mysql_real_escape_string( strip_tags( $_POST['brugerinput'] ) ) . "' WHERE id = '" . mysql_real_escape_string( $_POST['id'] ) . "'";
Avatar billede mstorgaard Praktikant
04. november 2006 - 17:05 #2
Hvad gør funktionen strip_tags()?
Avatar billede jensgram Nybegynder
04. november 2006 - 17:10 #3
Fjerner alle HTML-tags <...>
Avatar billede mstorgaard Praktikant
04. november 2006 - 17:12 #4
Okay, tak for hjælpen.

Hvad med nummer 2?
Avatar billede coderdk Praktikant
04. november 2006 - 17:13 #5
Den kan også fjerne nogle tags og lade andre være: http://dk.php.net/strip_tags
Avatar billede coderdk Praktikant
04. november 2006 - 17:14 #6
Nej og jo, ved $_SESSION og $row er det SOM REGEL altid dig selv der sætter, det er næsten aldrig brugerinput der bliver gemt i sådanne. Men en god tommelfingerregel er ALTID at benytte mysql_real_escape_string når du indsætter tekst ;)
Avatar billede mstorgaard Praktikant
04. november 2006 - 17:24 #7
Okay, tak. Du må gerne smide et svar :)
Avatar billede coderdk Praktikant
04. november 2006 - 17:33 #8
Ok (c:
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