Diskuze: PDO sql injection

PHP PHP PDO sql injection American English version English version

Avatar
kubp
Člen
Avatar
kubp:

Zdravím,
chtěl bych se zeptat jak je to s tím PDO?
Použil jsem PDO na jednoho z machrů a sdraco mi napsal, že tam mám sql injection.
Někde jsem četl, že sql injection nejde na PDO.

 
Odpovědět 3.3.2014 20:28
Avatar
Inoue Yūki
Redaktor
Avatar
Odpovídá na kubp
Inoue Yūki:

Nevím, jak jsi to tam použil, ale PDO ušetřuje SQL injection jenom když předáš hodnoty jako parametr metody:

PDO::query('... id = ?', $id);
Nahoru Odpovědět 3.3.2014 20:30
Avatar
Nahoru Odpovědět 3.3.2014 20:32
Nesnáším {}, proto se jim vyhýbám.
Avatar
kubp
Člen
Avatar
kubp:

Takhle:

$vloz = $this->getDB()->prepare($this->dotaz);
       $values = $this->data;
       $vloz->execute($values);
 
Nahoru Odpovědět 3.3.2014 20:33
Avatar
Snorlax
Redaktor
Avatar
Odpovídá na kubp
Snorlax:

PDO je prakticky jen způsob připojení k databázi... taky jde o to, jak tam ty dotazy kladeš. Tipuju že si tam neměl

$pdo -> prepare ("SQL....");

najdi si o tom víc...
ale jen něco jako

$xy = $_POST['xy'];
foreach ($pdo -> query("SQL... $xy.....") as $data)

Doufám že je k pochopení, co tím myslím :D Věřím, že tady o tom něco najdeš v článcích...

Nahoru Odpovědět  +1 3.3.2014 20:36
Kdo chce pochopit, pochopí. Kdo dělá že chce pochopit, může pouze dělat, že pochopil...
Avatar
kubp
Člen
Avatar
kubp:

Vím, že je to jenom způsob připojení. Je tohle dobře?

$vloz = $this->getDB()->prepare($this->dotaz);
      $values = $this->data;
      $vloz->execute($values);

A výběr mám:

$q = $this->getDB()->prepare($this->vyber);
       $q->execute();  //ARRAY!
       $data = $q->fetchAll();
 
Nahoru Odpovědět 3.3.2014 20:41
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 6 zpráv z 6.