Diskuze: escapování
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.

Tvůrce

Zobrazeno 7 zpráv z 7.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.
sdraco mi to krásně vysvětlil.
To by ti někdo do inputu mohl napsat :
''DELETE * FROM tabulka
A bylo by po srandě
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_escape_string(), nepoužívá.
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_escape_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.
Tenhle seriál mám pročtený. Hlavní rozdíl vidím v objektovém přístupu.
V MySQLi jsou použitelné obě techniky. Klasicky s escapováním nebo parametrizovaně bez escapování.
Zobrazeno 7 zpráv z 7.