Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Sanitização ao armazenar array serializado


Sempre use mysql_real_escape_string ao lidar com strings que podem ter aspas/barras. Se você não fizer isso, você receberá consultas quebradas/maliciosas. A saída de serialize() às vezes tem aspas / barras, então você deve usá-lo. Não há necessidade de serializar cada item da matriz de antemão.
$details['name']  = $_POST['name'];
$details['email'] = $_POST['email'];
$details['phone'] = $_POST['phone'];

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

Apenas como exemplo:serializar "hello" lhe dará: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);