11. september 2010 - 13:02Der 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.
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.
-> 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? :)
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.