Я разрабатываю простое приложение базы данных PHP для внутреннего использования, но хотел бы привести его в соответствие с передовыми методами. Некоторые из моих страниц получают целочисленные значения из запросов GET, и мне просто интересно, сколько валидации и санитарии действительно требуется.filter_input и mysqli_real_escape_string для целых чисел
В настоящее время я использую $num = filter_input(INPUT_GET, 'num', FILTER_VALIDATE_INT, $num_options);
с указанными минимальными и максимальными значениями. Отсюда я выход с сообщением об ошибке, если $num == false
Нужно ли использовать $mysqli->real_escape_string($num);
В настоящее время я не трогаю, потому что я думаю, что это довольно трудно сделать инъекцию SQL с помощью целого ...
Спасибо,
Kevin
UPDATE: Для уточнения запроса я делаю вид, как этот
$sql = "SELECT employeeID, concat(FirstName, ' ', LastName) as Name FROM employee WHERE employeeID='$num'";
Если я правильно понял, вы говорите, что если я не вставляю это в цитату из моего SQL-запроса, ее не нужно избегать? –
Если вы не вставляете это в цитированную часть вашего SQL, то побег становится полностью, абсолютно и совершенно бесполезным **. –
Что означает цитированная часть SQL? Пожалуйста, см. Точный запрос, который я сейчас разместил в своем исходном сообщении. –