sql >> Databáze >  >> RDS >> Mysql

Co je dostatečná sanitace pro URL

"Dostatečná dezinfekce" důkladně závisí na tom, o jakém prostředí mluvíte. Sanitace pro MySQL by měla být považována za zcela oddělenou z dezinfekce pro webový výstup a měli byste s nimi zacházet samostatně, abyste se vyhnuli spoustě potíží.

Dezinfekce pro MySQL

  • mysql_real_escape_string() dezinfikuje část dat a zajistí bezpečné vložení do SQL dotazu.
  • Jakýkoli jiný typ škodlivých dat, jako jsou značky HTML uvnitř řetězce, by měl být absolutně ignorován. Pokusy o manipulaci zde vás přivedou k bolestem hlavy, když se s ním později po vyjmutí z databáze pokusíte „zrušit manipulaci“. Špatná „webová data“ nemohou poškodit vaši databázi.

Dezinfekce pro výstup

  • htmlspecialchars($val) v době výstupu zabrání vykreslení jakýchkoli škodlivých značek, protože < a > znaky jsou převedeny na jejich reprezentace entit a nejsou vykresleny jako oddělovače značek.
  • Použijte ENT_QUOTES modifikátor, pokud vydáváte něco, co je uvnitř citovaného atributu prvku HTML, například <input name="email" value="<?php echo htmlspecialchars($email,ENT_QUOTES); ?>" />

To by mělo být vše, co potřebujete, pokud nemáte speciální požadavky. strip_tags() by ve skutečnosti neměl být používán k dezinfekci, protože může být oklamán špatně vytvořeným HTML. Sanitizace je důstojným cílem, a pokud dokážete udržet své kontexty oddělené, budete mít méně problémů s manipulací s daty mezi nimi.



  1. Proč parametr vazby v klauzuli ORDER BY neseřadí výsledky?

  2. Integrace ssl s mysql - přístup odepřen

  3. Příklad replikace Oracle Streams krok za krokem

  4. Echo booleovské pole jako ano/ne nebo jiné hodnoty