Avatar billede afischer Nybegynder
07. oktober 2009 - 11:20 Der er 5 kommentarer

PHP database sikkerhed

Hej Eksperter!

Jeg har gang i udvikling af et større site. I den forbindelse vil jeg gerne vide, om der er andre hensyn, som jeg skal tage mht. sikkerhed i database øjemed, end dem som jeg allerede har sørget for.

Jeg har på nuværende tidspunkt sikret mig ved at bruge mySQLi prepared statements til alt database relateret arbejde. Desuden kører jeg alt input (der ikke er integer) igennem htmlspecialchars().

Er der andre ting, som jeg ikke har været opmærksom på?
Avatar billede repox Seniormester
07. oktober 2009 - 11:29 #1
Hvorfor skal alle strenge igennem htmlspecialchars inden du smider det i databasen?
Avatar billede afischer Nybegynder
07. oktober 2009 - 11:36 #2
Hej!

Fordi alt brugerinput på siden - som er strenge - bliver brugt som output forskellige steder!

Men der er måske en anden/bedre mulighed i den forbindelse - eller noget som jeg ikke har tænkt over!?
Avatar billede repox Seniormester
07. oktober 2009 - 11:46 #3
Personligt ville jeg nok gemme det originale input (altså, efter sikkerheden for at SQL injection ikke forekommer) og så behandle det på vej ud. Der hvor der er behov for htmlspecialschars() bruger du når du henter det ud fra databasen. Men det er kun en smagssag.

Det er svært at sige hvor du kan 'forbedre' din sikkerhed.
Prøv at komme med et par eksempler på nogle funktioner du har lavet som du mener kunne være kritiske for dit system og vis os dem og hvordan du bruger dem. Så kunne man komme med nogle forslag, idéer og tanker.
Avatar billede afischer Nybegynder
08. oktober 2009 - 15:39 #4
Hej!

Det lyder egentlig som en bedre idé først at køre det igennem htmlspecialchars() på vej ud. Det er taget til efterretning :)

Mht. kritiske funktioner forestiller jeg mig ikke, at der er nogen. Som sagt bliver alt mit input kørt igennem mySQLi prepare statements, så mine tanker i den henseende er mere, om der kan være nogle ting som jeg har glemt!?

Jeg kan godt se, at det kan være svært, at nævne noget konkret uden at have en egentlig kode at kigge på, men det er mest for at få "noget at tænke over", at jeg skriver her :)
Avatar billede repox Seniormester
08. oktober 2009 - 15:48 #5
Umiddelbart kan du ikke gøre meget andet end at benytte dig af prepared statements for at sikre dine data.
Du skal bare altid huske på du aldrig kan stole på dine brugere. Hvis de kan komme til at ødelægge noget, så vil de gøre det. Det er Lesson #1
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