Og stripslashes når jeg hiver data ud igen. Det fjerner selvfølgelig de \ som bliver sat når der indsættes data. Men den fjerner også de \ som faktisk er lavet af brugeren. Hvordan laver jeg det, så man kan bruge \ uden det går ud over sikkerheden?
Det er ikke anbefalet at bruge addslashes(). Brug istedet en database specifik funktion til dette hvis en sådan findes. Jeg antager du bruger mySQL som database og der kan du fx. bruge mysql_real_escape_string().
Slashes bliver ikke indsat i databasen men gør bare at en streng bliver indsat korrekt. Derfor skal du ikke bruge stripslashes() når du hiver dataene ud af databasen igen.
Ja den er vel sikret mod SQL-injections. Du bør dog sikre dig at en integer nu også er en integer. Dette kan du bruge intval() til. Samt noget lignende ved andre typer.
Et andet problem er så HTML-injections (Eller hvad det nu kaldes). Der kan du bruge htmlentities(mysql_real_escape_string($val), ENT_NOQUOTES) istedet for at kalde htmlentities når du tager dataene ud af databasen.
Hvis du har en form hvor du forventer at et felt indeholder et heltal (fx et postnummer), så bør du også sikre dig at det er præcis hvad der er tastet ind, ellers vel der ske en fejl når SQL statement bliver udført. intval() gør det at den returnere en heltals værdi af en streng.
Dette har selvfølgelig ikke noget med SQL injections at gøre, men blot for at minimere fejl.
Tak for hjælpen alle. Hvis der er flere som ønsker point: Smid et svar :)
Synes godt om
Ny brugerNybegynder
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.