Это не экранирует данные, но это действительно пример рекомендуемого подхода OWASP .
Удаление всех входных данных, кроме чисел, из эффективной защиты от SQL-инъекцийпутем реализации белого списка .Не существует паранойи, которая может превратить полученную строку (в этом конкретном случае) в полезную нагрузку SQL-инъекции.
Однако , код стареет и изменяется, и его неправильно понимают, поскольку он наследуется новыми разработчиками.Итак, суть, правильный совет, конец всему и всему - это активное предотвращение SQL-инъекций одним или несколькими из следующих трех шагов.В этом порядке.Когда-либо.Не замужем.Время.
- Используйте безопасный API базы данных.(например, подготовленные операторы или параметризованные запросы)
- Использовать специальные экранирующие или экранированные дБ подпрограммы (
mysql_real_escape_string
попадает в эту категорию). - Белый список область допустимоговходные значения.(Ваше предлагаемое числовое решение попадает в эту категорию)
mysql_real_escape_string
не является ответом на все анти-sql-инъекции.Это даже не самый надежный метод, но он работает.Отбрасывание всех, кроме чисел, белого цвета с указанием безопасных значений, а также разумная идея, однако ни один из них не так хорош, как использование безопасного API.