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

Dezinfekce při ukládání serializovaného pole

Vždy použijte mysql_real_escape_string při práci s řetězci, které mohou mít uvozovky / lomítka. Pokud tak neučiníte, dostanete nefunkční / škodlivé dotazy. Výstup serialize() někdy má uvozovky / lomítka, takže byste je měli použít. Není však třeba předem serializovat každou položku pole.

$details['name']  = $_POST['name'];
$details['email'] = $_POST['email'];
$details['phone'] = $_POST['phone'];

$serializedDetails = mysql_real_escape_string(serialize($details));

Jen jako příklad:serializace "hello" vám dá:s:5:"hello" .

$data  = 's:5:"hello"';
$query = 'INSERT INTO tbl (data) VALUES ("' . $data . '")';

// leads to a syntax error from mysql
// (plus it's a huge security hole)
mysql_query($query);



  1. PL/pgSQL Pole řádků

  2. CakePHP 3 - přidružení tabulky DB k sobě samému

  3. Databázová řešení pro stavební management

  4. Přidejte sloupec do tabulky, pokud ještě neexistuje