10. marts 2003 - 22:09Der er
10 kommentarer og 1 løsning
Sikkerhed (eller mangel på samme) i MySQL querys?
Hej!
Efter at være taget på sengen med en SQL injection (der ikke ødelagde noget) er jeg begyndt at følge op på sikkerheden i forbindelse med databaseforespørgsler.
Jeg har slået en lille liste sammen som jeg gerne vil vide om er dækkende.
Det er naturligvis altid muligt at hacke et website eller en database, men er disse ikke de grundlæggende ideer omkring at beskytte sin database?
1. Tjekke for antal returnerede rækker, hvs der kun forventes en række.
2. Tjek for ulovlige karakterer (', ", ´, ` og ;).
3. Tjek for --, UNION, OR og SELECT i brugerinput.
Du skal ikke specielt gøre noget af dette. Du skal derimod sikre dig at data fra brugeren overholder de ting du forventer, fx at talfelter er tal. Og så skal du sikre dig at addslahes, direkte eller indirekte, anvendes på tekstfelter fra brugeren. Det er såmænd det hele.
Hvis man overholder det som erikjacobsen angiver, behøver du reelt ikke gøre andet. Altså: 1. Kontroller at et tal er et tal - det er den de fleste glemmer. 2. Sørg for at "escape" ' (erstat med to '')
Der er ikke noget der hedder "ulovlige karakterer" eller ting input ikke må indeholde. De vil altid være lovlige i en eller anden sammenhæng.
I MySql behøver man strengt taget ikke teste om et tal er et tal, da det er lovligt at skrive ....where id='99', og om der så skulle stå buksevand i stedet for 99 gør ikke forespørgslen farlig - blot nytteløs.
Men det er nu en god regel, for at få en fornuftig opførsel af programmet.
I MySql bør man nu skrive \' i stedet for ' (og ikke 2 stk ' )
Synes godt om
Slettet bruger
11. marts 2003 - 08:51#7
Ok, det lyder rart, men sagen var at det var en IIS spand med ASP som blev angrebet, og hvordan adder man slashes på sådan noget?
Og MySql er ligeglad om man escaper med \' eller '' Til gengæld er det med mysql ikke nok kun at escape '. Du skal escape " ' og \
php er ikke mere sikker end asp. Det er bare flere fjolser der koder asp ;o)
Synes godt om
Slettet bruger
11. marts 2003 - 09:08#9
Hehe...det skulle heller ikke ses som et angreb på sikkerheden i ASP, men det er simpelthen fordi jeg er doven af natur. Så er det nemmere at lade PHP klarer ærterne end at replace hele tiden ;)
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.