2013-05-25 4 views
1

Il y a une classe wrapper pdo qui a éteint l'émulation ou des déclarations préparées à l'aide:instructions SQL et pdo

setAttribute(PDO::ATTR_EMULATE_PREPARES, false); 

Je vois où quelques-unes des instructions SQL sont écrites en utilisant des méthodes standards non paramétrés tels que vu ci-dessous :

select * from table where name = '".$name."'. 

est-ce ce genre de déclarations protégées contre les injections sQL, même si une enveloppe est employée pdo?

+3

Non Comment pensez-vous AOP de fournir une protection quand il ne sait pas quelle partie de cette déclaration est censé être "protégé"? – DCoder

+1

Texte lu: [Le grand évasion] (http://kunststube.net/escapism) – deceze

Répondre

3

Votre idée de protection contre les injections est tout à fait fausse.

Il n'est pas PDO juste par sa présence (qui peut être interféré par un emballage) protège vos requêtes, mais déclarations préparées.

Tant que vous utilisez des instructions préparées, vos requêtes sont sécurisées, qu'il s'agisse d'un PDO ou d'un wrapper, ou même d'un mauvais ancien mysql ext.

Mais si vous mettez vos données dans la requête directement, comme dans votre exemple, il n'y a aucune protection

Questions connexes