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
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
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
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
ano, je to v poradku. k osetreni dojde v SqlPreprocessoru pomoci PDO::quote