get_magic_quotes_gpc() og addslashes

Tags:    php

<< < 12 > >>
Nu har jeg mødt disse to som står i overskriften mange gange i forhold til sikkerhed. Men Er der nogle som kan forklarer mig hvad de gør og hvor de bruges til?

Ps. er ny inde for PHP



12 svar postet i denne tråd vises herunder
5 indlæg har modtaget i alt 5 karma
Sorter efter stemmer Sorter efter dato
get_magic_quotes_gpc() fortæller, om funktionen "Magic Quotes" er slået til. Magic Quotes bruges til at tilføje backslashes til SQL-forespørgsler, for at sikre, at der ikke sker SQL Injection.

Sådan finder du ud af om Magic Quotes er slået til:

Fold kodeboks ind/udKode 


Addslashes bruges til det samme, der skal man bare gøre det manuelt:

Fold kodeboks ind/udKode 




Jeg har lavet en smart funktion til at gøre det automatisk på både GET og POST variablerne :)

Fold kodeboks ind/udKode 




Jeg har lavet en smart funktion til at gøre det automatisk på både GET og POST variablerne :)

Fold kodeboks ind/udKode 


Det er ikke nødvendigvis så smart... $val kan sagens være et array, os så vil addslashes vist give en fejl...

Fold kodeboks ind/udKode 


Hvis det skulle laves rigtigt, skulle det laves i en funktion som rekursivt kan loope gennem $_POST og $_GET



Er det ikke bare bare at kalde autoaddslashes så?
Fold kodeboks ind/udKode 

Hermed skal autoaddslashes selvfølgelig kunne være modtagelig overfor variabler ;) Men det kan nu gøres let med
Fold kodeboks ind/udKode 

Eller noget i den stil.



Det er en god vane at gøre det manuelt, da magic_quotes forsvinder i PHP6. Så slipper man for at genskrive alle sine scripts for at undgå SQL injections :).



Er det ikke bare bare at kalde autoaddslashes så?



hmm... Det burde give en uendelig løkke :)

som det er nu, vil funktionen jo løbe ind i samme array igen og igen...

Her er en funktion som burde virke rekursivt (det kan sandsynligvis laves pænere)...

Fold kodeboks ind/udKode 





Indlæg senest redigeret d. 04.05.2008 20:02 af Bruger #4683
Mit halve kodeeksempel giver ikke en uendelig løkke. Jeg påtaler mig kun situationen hvor $var er et array. Alt det andet er blevet påtalt korrekt i tråden, derfor gengiver jeg det ikke.



Mit halve kodeeksempel giver ikke en uendelig løkke. Jeg påtaler mig kun situationen hvor $var er et array. Alt det andet er blevet påtalt korrekt i tråden, derfor gengiver jeg det ikke.


Jeg vil nu holde fast på at, hvis man kalder autoaddslashes med $var som argument, så giver det en uendelig løkke med mindre man skriver det meste af funktionen om - og det synes jeg ikke at du lagde op til...





Kan ikke se at det ville give en uendelig løkke. Så skal antallet af $var også være uendelig. Er antallet det, så ville alle rekursive funktioner være uendelige lige netop på det array (eller indtil stakken springer).



<< < 12 > >>
t