NOVINKA - Online rekvalifikační kurz Java programátor. Oblíbená a studenty ověřená rekvalifikace - nyní i online.
NOVINKA – Víkendový online kurz Software tester, který tě posune dál. Zjisti, jak na to!

Diskuze: PDO/MySQL Injekce

V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.

Aktivity
Avatar
katrincsak
Člen
Avatar
katrincsak:25.7.2015 22:38

Zdravím,

rád bych se optal. Jestli tímto způsobem nenarušuji ochranu předáním hodnot v proměnné, když v proměnné předávám i část příkazu. Mám to z důvodu toho, abych nemusel vypisovat xx selectu na každou DB zvlášť. Předám jen hodnoty.

Děkuji.

public function sqlSelect($klic, $from, $select, $limit)
{
        try{
                $data = Db::dotazJeden("SELECT ?
                FROM ?
                WHERE ? LIMIT ?",
                array($select, $from, $klic, $limit));

                return $data;
        } catch (PDOException $e) {
                exit;
        }
}
 
Odpovědět
25.7.2015 22:38
Avatar
katrincsak
Člen
Avatar
katrincsak:25.7.2015 22:43

Hlavně jde o ten celý WHERE..že nepředávám jenom hodnotu, ale i celý název sloupce.

 
Nahoru Odpovědět
25.7.2015 22:43
Avatar
Jan Lupčík
Tvůrce
Avatar
Odpovídá na katrincsak
Jan Lupčík:25.7.2015 22:49

Přes náhradní znaky, otazníky, to jde předávat jen u WHERE, co já teda vím. U ostatních ti to hodí chybu - tam musíš dávat rovnou proměnné do toho dotazu.

Nahoru Odpovědět
25.7.2015 22:49
TruckersMP vývojář
Avatar
katrincsak
Člen
Avatar
Odpovídá na Jan Lupčík
katrincsak:25.7.2015 22:53

Ono to funguje, převezme to hodnoty přesně jak potřebuji. Ale jde mi jen o zachování bezpečnosti předáním hodnot v proměnné. Hlavně u toho where, protože u toho zbytku je to jedno.

Editováno 25.7.2015 22:55
 
Nahoru Odpovědět
25.7.2015 22:53
Avatar
katrincsak
Člen
Avatar
Odpovídá na Jan Lupčík
katrincsak:25.7.2015 23:08

Omlouvám se za řešení nesmyslu. Měl jsem nechtěně původní název a tak to frčelo. Předání hodnot, takhle skutečně nejde. Musím vepsat přímo proměnnou, jak napsal IT Man.

 
Nahoru Odpovědět
25.7.2015 23:08
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 5 zpráv z 5.