Avatar billede zagger Juniormester
11. september 2010 - 13:02 Der er 8 kommentarer og
1 løsning

Sikre mod sql-injections

Jeg har været så uheldig at få min mysqldatabase hacket via sql-injections. Så nu er jeg ved at sikre mine sider mod fremtidige angreb.

Jeg gør det ved at bruge mysql_real_escape_string() de steder hvor brugerne kan indtaste oplysninger i databasen.

Men nu tænker jeg så på om det ikke også er nødvendigt at gøre det de steder hvor jeg linker via link.php?et=eller_andet.

Mange af stederne henter linket kun oplysninger fra databasen hvor der kun er læserettigheder, men nogle enkelte steder bruger jeg også linkene til at skrive til databasen. Er det så ikke kun de link der har skriverettigheder til databasen der skal pakkes ind i mysql_real_escape_string()?

Jeg har register_globals sat til on, og ønsker at det skal blive ved med det.
Avatar billede showsource Seniormester
11. september 2010 - 13:33 #1
Både når du læser og skriver til db, skal du sikre mod sql injections.
Og kik gerne på pdo:
http://dk.php.net/manual/en/book.pdo.php
eller mysqli:
http://dk.php.net/manual/en/book.mysqli.php
Avatar billede zagger Juniormester
11. september 2010 - 15:09 #2
Nu er jeg ikke nogen super karl koder, så det du linker til er lige i overkanten af hvad min lille hjerne kan overskue.

Kunne jeg få dig til at forklare hvorfor det også er nødvendigt at sikre mod injections når databasen kun tillader at der bliver læst fra den?
Avatar billede intenz Novice
11. september 2010 - 17:26 #3
Du har sikkert nogle tabeller du ikke er interesseret i at alle brugere kan læse. F.eks. en bruger database med brugernavne/passwords eller lign.

Det kan være tilfælde hvor det ikke er muligt at læse noget, uanset hvordan man forsøger at lave en SQL-injection. Men det er svært at kontrollere hvor der er fare og hvor der ikke er. Derfor bør du aldrig validere alt input som brugere kan ændre i, så er problemet løst og man behøver ikke tage hensyn til det fra gang til gang.
Avatar billede zagger Juniormester
11. september 2010 - 17:46 #4
Okay. Det lyder jo meget fornuftigt. Smid et svar, så får du point.  :)
Avatar billede intenz Novice
11. september 2010 - 18:26 #5
Fino, kommer her :)
Avatar billede majbom Novice
11. september 2010 - 23:53 #6
-> intenz - "Derfor bør du aldrig validere alt input som brugere kan ændre i, så er problemet løst og man behøver ikke tage hensyn til det fra gang til gang." - seriøst? :)
Avatar billede intenz Novice
12. september 2010 - 00:10 #7
ja, så den godt :P Sitet trænger i den grad til en funktion hvor man kan rette sine indlæg :/
Avatar billede majbom Novice
12. september 2010 - 00:28 #8
ja det ville være lækkert - og lidt bedre mulighed for at udnytte bb-tags :)
Avatar billede zagger Juniormester
12. september 2010 - 04:51 #9
Jaja men pointen fes godt nok ind alligevel.  :)
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