Ik maak met behulp van pdo verbinding met een mysql server. Nu voerde ik mijn sql uit met pdo::exec($sql). Nu wil ik echter mij zelf tegen sql injection beveiligen. Prepared statements zijn automatisch tegen sql injection beveiligd (en ja ik weet dat dat nog steeds niet 100% is, maar in ieder geval genoeg voor de meeste gevallen).
Nou heb ik op het moment dit in een class staan:
Zoals je ziet gebruik ik geen bindparam. Zou ik hier dan toch gewoon $this->connection->exec(quote($sql)); moeten gebruiken? Ik twijfel hierover voornamelijk omdat op php.net word aangeraden de prepared statements te gebruiken (en omdat het sneller is, maar waarschijnlijk is dat dus alleen wanneer je bindparam gebruikt?).
Graag advies dus
Nou heb ik op het moment dit in een class staan:
PHP:
1
2
3
4
5
6
7
8
| public function exec($sql) { $prepared = $this->connection->prepare($sql); if($prepared === false) { throw new exception(__CLASS__.'::'.__FUNCTION__.': exec is mislukt (false)!'); } else { return $prepared->execute(); } } |
Zoals je ziet gebruik ik geen bindparam. Zou ik hier dan toch gewoon $this->connection->exec(quote($sql)); moeten gebruiken? Ik twijfel hierover voornamelijk omdat op php.net word aangeraden de prepared statements te gebruiken (en omdat het sneller is, maar waarschijnlijk is dat dus alleen wanneer je bindparam gebruikt?).
Graag advies dus