1. Введение в функцию is_numberic
Некоторые внутренние программы CMS использовали функцию is_numberic.
bool is_numeric (смешанный $ var)
Возвращает True, если VAR является числовой и числовой строкой, в противном случае возвращает false.
2. Безопасна ли функция?
Далее, давайте посмотрим на пример, чтобы проиллюстрировать, безопасна ли эта функция.
Кода -код выглядит следующим образом: $ s = is_numeric ($ _ get ['s'])? $ _ Get ['s']: 0;
$ sql = "Вставка в тест (тип) значения ($ s);";
mysql_query ($ sql);
Приведенная выше программа фрагментов определяет, является ли параметры S числом, и возвращает число, если это не так, возвращает 0, а затем приводит его в запрос базы данных. (Таким образом, операторы SQL не могут быть построены)
Мы преобразуем «1 или 1» в шестнадцатеричную 0x31206F722031 в качестве значения параметра S
После запуска программы мы запросили базу данных, как показано на рисунке ниже:
Если вы заново зарегистрируете поля этой таблицы и не отфильтровали и не принесете еще одно заявление SQL, это приведет к 2 инъекциям.
3. Резюме
Постарайтесь не использовать эту функцию. 1 или 1 не появятся.