SQL sikkerhed

Tags:    php

Hej,

Jeg har nu udviklet et insert script, der håndtere alt det jeg indsætter og opdater. Det indtil videre meget sikkert, har forsøgt med forskellige redskaber at "snyde" noget kode ind, men det er endnu ikke lykkes, hvilket jo bare er super.

Men nu tænker jeg, er det overhovedet nødvendigt at tjekke for unødvendige koder i min strings, når jeg henter ned fra databasen HVIS alt data der er blevet indsat og opdateret er 99% sikkert?





4 svar postet i denne tråd vises herunder
0 indlæg har modtaget i alt 0 karma
Sorter efter stemmer Sorter efter dato
Det er altid nødvendigt at tjekke for sql injection, men bruger du prepared statements ved insert/update, så har du jo tjekket for det...

Og så skal du jo have escaped dine strings..



Indlæg senest redigeret d. 11.05.2014 17:59 af Bruger #7728
Det kommer an på, hvordan du bruger dataene.

Hvis du henter en streng fra databasen og efterfølgende bruger den til en databasesøgning, så skal den escapes, når du søger.
Hvis du skriver strengen tilbage til brugeren, så skal den gennem htmlspecialchars().
Bruger du den som argument til en shell kommando, skal du bruge escapeshellarg().




Lad os sige at alle mine $_GET variabler bliver kørt af et script der sikre at der kun kan være små bogstaver og tal

Og når man søger efter noget køre den samme script som når jeg indsætter, så dvs 99% sikker

Skal jeg virkelig gøre det IGEN når jeg henter, ville det ikke være unødvendig??



Du vil altid sikre dit indhold FØR det bliver indsat i databasen, og derved behøver du ikke at escape og/eller validere din data når du henter det fra databasen igen.



t