Avatar
martinkobelka
Redaktor
Avatar
martinkobelka:

Učím se escapování, a chtěl bych se zeptat, proč mám vlatně při vypisování proměnných do mysql_query proměnnou nejdřív prohnat mysql_real_es­cape_string()?, co by se stalo, kdybych ji neprohnal?

 
Odpovědět 19.8.2012 16:41
Avatar
Daniel Vítek
Tým ITnetwork
Avatar
Odpovídá na martinkobelka
Daniel Vítek:

sdraco mi to krásně vysvětlil.
To by ti někdo do inputu mohl napsat :
''DELETE * FROM tabulka
A bylo by po srandě :)

 
Nahoru Odpovědět 19.8.2012 16:46
Avatar
Kit
Redaktor
Avatar
Odpovídá na martinkobelka
Kit:

Uživatel by do vstupního stringu mohl vložit apostrof. Tím by ukončil řetězec a další znaky by mohl zneužít pro změnu SQL dotazu. Říká se tomu SQL injection. Takto upravený dotaz by pak mohl třeba vypsat obsah databáze nebo ji zničit.

Modernější ovladače, např. PDO, umožňují používat tzv. parametrizované dotazy. V nich se již escapování, tedy funkce mysql_real_es­cape_string(), nepoužívá.

Nahoru Odpovědět 19.8.2012 16:51
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Don
Člen
Avatar
Odpovídá na Kit
Don:

Sice to moc nesouvisí s článek ale i přes to se zeptám. Ovladač mysqli má již ošetřeno escapování? Funkce mysqli_real_es­cape_string pro to je. V manuálu jsem o tom moc nenašel jaké rozdíly mezi ovladači mysqli a mysql jsou. Proto se ptám tu.

 
Nahoru Odpovědět 19.8.2012 20:41
Avatar
David Čápka
Tým ITnetwork
Avatar
Nahoru Odpovědět 19.8.2012 20:46
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
Don
Člen
Avatar
Odpovídá na David Čápka
Don:

Tenhle seriál mám pročtený. Hlavní rozdíl vidím v objektovém přístupu.

 
Nahoru Odpovědět 19.8.2012 20:48
Avatar
Kit
Redaktor
Avatar
Odpovídá na Don
Kit:

V MySQLi jsou použitelné obě techniky. Klasicky s escapováním nebo parametrizovaně bez escapování.

Nahoru Odpovědět 19.8.2012 21:15
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
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 7 zpráv z 7.