Какие дыры остаются даже после mysql_real_escape_string?
Насколько безопасен вход после прохождения через эту функцию?
Это 100% безопасно?
$id = $_POST['id'];
$id = mysql_real_escape_string($id);
2 ответа
Лучший способ - вообще не смешивать SQL с предоставленными пользователем данными, используя подготовленные операторы.
В вашем случае (при условии id
это номер), просто используйте $id = intval($_POST['id']);
, С простым целым числом вы не можете вводить что-либо. Тебе даже не нужно mysql_real_escape_string()
В этом случае.
Для строковых аргументов, используя mysql_real_escape_string()
достаточно - но никогда не забывайте заключать в кавычки аргумент в строке SQL!