У меня есть URL-адрес, что, когда действительный будет выглядеть следующим образом:SQL Injection Профилактика - GET_VARS
site.com/page.php?id=12345
Я пытаюсь понять, если мы vunderable к SQL-инъекции. В этом конкретном случае значение должно быть только положительным целочисленным значением, так как оно является идентификационным номером. Иногда мы используем другие переменные, которые могут быть буквой или строкой текста, например, страницами результатов поиска.
Пример кода, используемого для извлечения переменной ID здесь:
$variable = "0";
if (isset($HTTP_GET_VARS["id"])) {
$variable = (get_magic_quotes_gpc()) ? $HTTP_GET_VARS["id"] : addslashes($HTTP_GET_VARS["id"]);
}
В большинстве случаев получать переменную из URL, он подошел к этому пути.
Это что-то для предотвращения инъекций sql?
Должен ли я использовать mysql_real_escape_string?
Я читал о подготовленных заявлениях, но это кажется сложным, и мы используем эти переменные по всему месту на сайте с большим количеством страниц и запросов. Прохождение и замена их просто не жизнеспособны в краткосрочной или среднесрочной перспективе.
Если бы был альтернативный способ проверки данных без подготовленных заявлений, любые советы были бы высоко оценены.
Заранее спасибо.
Какую версию PHP вы используете? – BlitZ
Вы должны использовать 'mysqli' или' pdo' вместо старых и скоро устаревать 'mysql' функции. – Cyclonecode
использование подготовленных заявлений проверить это http://stackoverflow.com/questions/12859942/why-shouldnt-i-use-mysql-functions-in-php/14110189#14110189 –