Zabezpecene dotazy proti SQL injection

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
Raiper34
Člen | 65
+
0
-

Zdravim,

mam jednu otazku, rad by som s databazou pracoval pomocou metody query, ale neriesi to bezpecnost ako viem, predsa len zlozite selecty sa inak moc pisat nedaju, apson pohodlne pre mna teda. Dopocul som sa ze query ide aj spustat pomocou nejakych parametrov, cez nejake quecka ci co, a ze potom to bude zabezpecene, ale nic som nenasiel. Existuje nieco take, alebo tu pisem uplne bludy?

Dakujem.

Aurielle
Člen | 1281
+
+1
-

Říká se tomu prepared statements, nějakou teorii a základy najdeš přímo na php.net, pro použití v Nette\Databse doporučuju kouknout do dokumentace (s NDB nepracuju).

Vastlik
Člen | 58
+
+3
-

https://doc.nette.org/cs/database viz dotazy

use Nette\Database\Context;

$database = new Context($connection);

$database->query('INSERT INTO users', array( // parametr může být pole
    'name' => 'Jim',
    'created' => new DateTime, // nebo objekt DateTime
    'avatar' => fopen('image.gif', 'r'), // nebo soubor
), ...); // je možné také provést více vložení najednou

$database->query('UPDATE users SET ? WHERE id=?', $data, $id);
$database->query('SELECT * FROM categories WHERE id=?', 123)->dump();

pokud používáš nette database, jinak použí PDO

Raiper34
Člen | 65
+
0
-

Vdaka hej je to ono, otazniky, nie quecka :-D Este raz vdaka :)