Pouze tento týden sleva až 80% na e-learning týkající se Kotlinu
Využij akce až 80% zdarma při nákupu e-learningu. Více informací .
Kotlin week
Avatar
martinkobelka
Redaktor
Avatar
martinkobelka:19.8.2012 16:41

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:19.8.2012 16:46

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
Na síti působím už pěknou řádku let. Pokud budeš něco potřebovat, písni mi, pokusím se ti poradit :)
Avatar
Kit
Redaktor
Avatar
Odpovídá na martinkobelka
Kit:19.8.2012 16:51

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:19.8.2012 20:41

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
Tento výukový obsah pomáhají rozvíjet následující firmy, které dost možná hledají právě tebe!
Avatar
David Čápka
Tým ITnetwork
Avatar
Nahoru Odpovědět
19.8.2012 20:46
Jsem moc rád, že jsi na síti, a přeji ti top IT kariéru, ať jako zaměstnanec nebo podnikatel. Máš na to! :)
Avatar
Don
Člen
Avatar
Odpovídá na David Čápka
Don:19.8.2012 20:48

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:19.8.2012 21:15

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.