sql >> Databasteknik >  >> RDS >> Mysql

Sanering vid lagring av serialiserad array

Alltid använd mysql_real_escape_string när du har att göra med strängar som kan ha citattecken / snedstreck. Om du inte gör det kommer du att få trasiga / skadliga frågor. Utdata från serialize() har ibland citattecken / snedstreck, så du bör använda det. Det finns dock ingen anledning att serialisera varje objekt i arrayen i förväg.

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

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

Bara som ett exempel:serialisering av "hej" ger dig: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. Vad är användarnamn/lösenord för anslutning i MySQL workbench?

  2. Datumformat i asp till excel-form

  3. fråga i codeigniter:hämta var eller

  4. group_concat prestandaproblem i MySQL