PHP: Forskelle mellem versioner

Content deleted Content added
Linje 205:
Et af de mest alment kendte sikkerhedsproblemer i PHP er superglobale variabler og heraf risikoen for [[Sql injection|SQL-injections]]. SQL-injections er kort og godt, at der indsættes et eller flere specialtegn (typisk ' eller ") i de data der fremsendes til serveren. Hvis applikationen ikke er tilstrækkeligt beskyttet, vil disse tegn åbne muligheden for at personer med indgående kendskab til SQL kan udtrække og manipulere data, de ikke var tiltænkt.
 
Før version 5 var de såkaldte <i>magic_quotes</i> slået til som standard, men de er siden slået fra som standard, for at blive fuldkommen udfaset i version 5.4. <i>magic_quotes</i> hjælper begyndere med at beskytte sig mod SQL-injections, men som Rasmus Lerdorf og andre fremtrædende PHP-personligheder har argumenteret for, er det ultimativt ikke sprogets ansvar eller opgave, og samtidig fremmer det indirekte ikke programmøren til at være opmærksom på potentielle sikkerhedshuller og trusler. PHP tilbyder dog en række værktøjer til beskyttelse mod SQL-injections, bl.a. funktionerne <i>add_slahesadd_slashes</i> og <i>mysql_real_escape_string</i>. Disse er beregnet til en klassisk, procedural tilgang til databaserne. Benytter man det objekt-orienterede PDO er der praktisk talt ingen risiko for injections, data systemet holder parametre og forespørgsel adskilt.
 
Safe mode er lavet for at komme et sikkerhedsproblem til livs på delte servere. Det er lavet som et PHP script der går ind og sætter begrænsninger for hvad der er tilladt. En af de største begrænsninger er, at filbehandlingsmuligheder er stærkt begrænsede, og mange open source systemer vil derfor ikke virke. På mange danske webhoteller er der ikke mulighed for at slå safe mode fra på domænet, hvilket giver store problemer.