SQL en PDO prepared

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Roel -

Roel -

15/10/2013 13:53:29
Quote Anchor link
Hoi allemaal,

Ik liep vandaag met een vriend tegen een vervelende situatie aan. Als je PDO gebruikt met prepared statements, dan beschermt PDO je tegen SQL-injectie.

Nu was het met mysql_real_escape_string altijd zo dat een quote een backslash kreeg om ervoor te zorgen dat er SQL-injectie mogelijk was. In je database stond het dus ook met een backslash. Maar met PDO is dit niet meer zo, dan staat er geen backslash meer voor.

Maar wat gebeurt er nu als je een export van de database maakt en je importeert deze weer? Dan wordt SQL niet geescaped en krijg je fouten. Of denk ik nu verkeerd?

Opheldering graag! :-)
 
PHP hulp

PHP hulp

23/12/2024 19:01:39
 
TJVB tvb

TJVB tvb

15/10/2013 14:24:00
Quote Anchor link
Je zou die backslash helemaal niet in je database moeten zien. Het klinkt alsof je te veel backslashes plaatste.

Weet je zeker dat het met een backslash in de database staat?

Normaal gesproken met je een export gewoon weer kunnen importeren.
 
Roel -

Roel -

15/10/2013 14:25:45
Quote Anchor link
Het staat met PDO prepared statements niet met een backslash in de database nee.
Met mysql_real_escape_string was dit wel zo.
 
Erwin H

Erwin H

15/10/2013 14:45:16
Quote Anchor link
Roel PHP op 15/10/2013 13:53:29:
Maar wat gebeurt er nu als je een export van de database maakt en je importeert deze weer? Dan wordt SQL niet geescaped en krijg je fouten. Of denk ik nu verkeerd?

Als je het op een juiste manier exporteert en weer importeert is er niets aan de hand. Dat soort modules hebben daar een standaard afhandeling voor. Neem bijvoorbeeld csv, de correcte handel wijze bij een csv file voor quotes is dat een string wordt omringd door dubbele quotes. Als er binnen een string een dubbele quote voorkomt dat moet die worden voorafgegaan door een dubbele quote. Als een systeem dus correcte csv files exporteert en importeert zal die elke dubbele quote bij het exporteren vervangen door twee dubbele quotes en bij het importeren er weer 1 verwijderen.
 
Dos Moonen

Dos Moonen

15/10/2013 16:14:13
Quote Anchor link
Roel PHP op 15/10/2013 14:25:45:
Het staat met PDO prepared statements niet met een backslash in de database nee.
Met mysql_real_escape_string was dit wel zo.


Dat betekend dan dat je mysql_real_escape_string() 2x per parameter gebruikte. Wat niet de bedoeling is. En als er tijdens het importeren iets fout gaat door missende backslashes betekend dat dat het tijdens het exporteren iets fout is gegaan.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.