Escape vstupu Nette\Database

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

Zdravím,

provádí se automatický escape vstupu pro funkci?

$this->context->database->query(..)

Pokud si zkusím udělat escape sám mysql_real_escape_string($parametr), tak skončím na chybě

mysql_real_escape_string(): Access denied for user
vvoody
Člen | 910
+
0
-

Samozrejme že neprovádí, parameter tam je len jeden a to je celé query. Keď to query niekde pozliepaš do jedného stringu, tak už žiadny algoritmus nezistí či je napadnutý nejakým sql injectionom. Použi queryArgs.

mysql_real_escape_string bez nadviazaného spojenia cez mysql_connect nefunguje, evidentne sa ho snaží automaticky nadviazať s údajmi ktoré netuším odkiaľ berie.

JaroslavRamba
Člen | 20
+
0
-

Pokud udělám

$this->context->database->query($query, $arg1, $arg2)

je to v pořádku? Kde v nette dochází k ověření vstupu?

($query obsahuje dva parametry, které jsou vloženy pomocí ?)

David Matějka
Moderator | 6445
+
0
-

ano, je to v poradku. k osetreni dojde v SqlPreprocessoru pomoci PDO::quote