La mia applicazione è vulnerabile all'iniezione SQL se non si specifica ciascun tipo in Doctrine2?

0

Pensavo che le dichiarazioni preparate da Doctrine 2 DBAL fossero al sicuro da SQLi. Ma ho trovato questo bit confuso nel docs :

By default the Doctrine DBAL does no escaping. Escaping is a very tricky business to do automatically, therefore there is none by default. When you use the Doctrine DBAL as standalone, you have to take care of this yourself.

Che cosa significa esattamente? Se qualcuno tenta di iniettare codice dannoso, la query fallirà (al contrario di inserire l'escape) perché l'RDBMS mi protegge? O non sono affatto protetto?

Uso PostgreSQL come mio RDBMS.

    
posta ChocoDeveloper 09.08.2013 - 18:23
fonte

2 risposte

1

Mi ero anche chiesto. Googling molto Ho trovato la risposta pubblicata da Benjamin Eberlei stesso (Doctrine Project Lead and Contributor):

Hello,

of course DBAL uses PDO internally and escapes parameters such as in your example. I think the docs are messed up here. The Paragraph relates to the two subparagraphs about quote() and quoteIdentifier() and should mention quoting INSIDE sql strings (prepared statements are secure of course!). sorry for the confusion, i should update the docs to be more clear on this.

greetings, Benjamin

On Sat, 1 Jan 2011 15:12:28 -0800 (PST)

    
risposta data 21.01.2015 - 03:41
fonte
1

Vorrei chiarire se stai usando solo la parte DBAL di Doctrine, o tutto il resto. Dalla mia comprensione, DBAL è una parte "di livello inferiore" di Doctrine, che si concentra solo sulla comunicazione con il database.

Se stai usando Doctrine con Symfony (il modo più comunemente usato che ho visto utilizzarlo), e hai creato le classi entity / repository / query builder appropriate, non dovresti aver bisogno di sfuggire manualmente a nessuno dei valori. Questo perché i valori immessi usando tali classi verrebbero automaticamente sottoposti a escape utilizzando le istruzioni preparate (dietro le quinte, da Doctrine).

    
risposta data 10.09.2013 - 17:03
fonte

Leggi altre domande sui tag