Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze: PDO sql injection

Aktivity
Avatar
kubp
Člen
Avatar
kubp:3.3.2014 20:28

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
Odpovídá na kubp
Neaktivní uživatel:3.3.2014 20:30

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
Neaktivní uživatelský účet
Avatar
Odpovídá na kubp
Michal Žůrek - misaz:3.3.2014 20:32

podívej se na zdejší tutoriály. Tam je to moc pěkně popsané.

http://www.itnetwork.cz/…adlo-navstev
http://www.itnetwork.cz/…ev-dokonceni

 
Nahoru Odpovědět
3.3.2014 20:32
Avatar
kubp
Člen
Avatar
kubp:3.3.2014 20:33

Takhle:

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

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
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:3.3.2014 20:41

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.