Задать вопрос
@rinaz22

Надежно ли использовать только is_numeric и is_int?

Всем привет! Перед тем как делать запрос, проверяю id с помощью такого условия:
if (!is_numeric($_GET['id']) or !is_int($_GET['id']+0))
	exit ("Ошибка!");

Если все хорошо, то делаю запрос:
SELECT * FROM `users` WHERE `id` = '$_GET[id]'
Надежна ли такая проверка или все же могу "подцепить" SQL инъекцию?
  • Вопрос задан
  • 220 просмотров
Подписаться 2 Простой 1 комментарий
Ответ пользователя Anton B К ответам на вопрос (4)
bigton
@bigton
Web-программист
1. Забудьте про $_GET/$_POST/$_SERVER/$_COOKIE, в PHP уже давно есть filter_input
$id = filter_input(INPUT_GET, 'id', FILTER_VALIDATE_INT);

Смотрите мануал https://www.php.net/manual/ru/function.filter-inpu... смотрите фильтры, опции, примеры.

2. От SQL инъекций защищает https://www.php.net/manual/ru/mysqli.real-escape-s... непосредственно перед запросом.
Ответ написан