Mysql: Это безопасно, чтобы не использовать готовые заявления?

Я знаю, вы всегда должны использовать готовые заявления … и это то, что я делаю, но! они медленнее, и если есть какой-то вход, который на 100% безопасен, я думаю, я не смог бы их использовать.

(PHP)

if ( ctype_digit($_POST['id']) ){

$int_id = (int)$_POST['id'];

if ( is_int($int_id) ){

$query = "SELECT id FROM ids WHERE id = {$int_id}";

}

}

2

Решение

Говоря об этом конкретном глупом примере, он, хотя и избыточен, технически безопасен.

Но вы должны понимать, что наш код не всегда ограничен таким примером кода для спагетти.

  • Во-первых, в правильно разработанном приложении взаимодействие с базой данных отделено от проверки входных данных. А слой базы данных просто не знает, является ли отправленная переменная «безопасной» или нет. В результате намного проще обрабатывать каждую переменную как «небезопасную» и обрабатывать все переменные одинаково.
  • Во-вторых, представьте, что существует не одна глупая переменная, а дюжина из них. Как долго ваш код станет?
  • если вы планируете использовать разные подходы (подготовленные и не подготовленные), это все равно не имеет смысла — это приведет к чрезмерному усложнению вашего кода без причины. Почему бы не использовать унифицированное решение все время?

Кроме того, ваши предпосылки просто неверны. Подготовленные заявления не медленнее.

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector