Loading...
Помощь по скриптам | Для тех кто фильтрует числа через if*
Долгое время я сам делал вот такую фильтрацию чисел на PHP.

error

****

Ход работы:
Если значение в переменной $value более 0 - то скрипт выполняется - если число не проходит - выводит ошибку:
error

****

А сейчас попробуем вставить в переменную $value значение "10 Привет".
error
Результат работы:
error
Как видим - скрипт пропустил данное значение.

****

А сейчас немного теории:

Не будем говорить то что например благодаря такой фильтрации можно пропустить XSS уязвимость, SQL уязвимость.

Столкнулся я с таким:
При вставке значения в базу данных [Поле `money` => тип: Числовое].
Вставляем значение 10.9889.1 [Т. е. две точки]. Я был в шоке если честно то что запрос прошел без ошибок. А в двойном шоке когда увидел что база данных вставило число: "109889" вместо например "10.9889". Думаю сами додумаетесь во что это может выйти...


P. S.:
Если не очень понятно - спрашивайте.
полено...
полено...
полезно...
Почитай про if подробнее. Он воспринимает 0 как false. То есть если строка не ровна false, то выполнять действия. Нужно проверять на число is_numeric()
извините за спам. инет заклинил
числа с точкой в int хранится не будут, логично же)
Онлайн: 1
Время:
Gen. 1.4044
(c) ByMAS.RU 2010-2025