zilber 3 Опубликовано: 5 января 2016 Рассказать Опубликовано: 5 января 2016 Приветствую! В модуле я сделал такую проверку переменной из запроса, которая должна содержать только числовое значение: $eid = (is_numeric($_GET['eid'])) ? $_GET['eid'] : die( "<script>document.location.href = '/index.php?logout'</script>" ); А теперь думаю - не крутовато ли? Есть ли подводные камни такой фильтрации 5-6 переменных из каждого запроса? Всех с наступившим! Цитата Ссылка на сообщение Поделиться на других сайтах
zilber 3 Опубликовано: 15 января 2016 Рассказать Опубликовано: 15 января 2016 Автор Ну как бы апнуть тему и вдруг кто ответит... Проверьте, пожалуйста, мою логику: $fa = (isset($_POST['fa'])) ? mysqli_real_escape_string($db, trim($_POST['fa'])) : ''; $fa = ($fa != '') ? strip_data($fa) : ''; Рассуждаю так: 1. Если переменная в запросе есть, то она реал-эскейпится. Если нет - остается пустой. 2. Если переменная по результатам пункта 1 не пустая - прогоняется через функцию (режет мускульные команды). Заранее спасибо! Цитата Ссылка на сообщение Поделиться на других сайтах
alex32 942 Опубликовано: 16 января 2016 Рассказать Опубликовано: 16 января 2016 (изменено) 2 часа назад, zilber сказал: 2. Если переменная по результатам пункта 1 не пустая - прогоняется через функцию (режет мускульные команды). добавь фильтрацию html, js и php Изменено 16 января 2016 пользователем alex32 Цитата Ссылка на сообщение Поделиться на других сайтах
zilber 3 Опубликовано: 16 января 2016 Рассказать Опубликовано: 16 января 2016 (изменено) Автор Спасибо за ответ и за совет, добавил! Честно говоря, мне кажется я уже как-то перестарался... Вот на данный момент как выглядит фильтрация: Проверка на число: if (is_numeric($_POST['org_id'])) { $org_id = $_POST['org_id']; } else { die('попытка взлома системы'); } Очистка текста: $pax_job = mysqli_real_escape_string($db, trim($_POST['pax_job'])); $pax_job = ($pax_job != '') ? strip_data($pax_job) : ''; Проверка на соответствие регулярке: $err = false; $errtext = ''; $regul = '/\D/'; if ( preg_match($regul, $pax_pass_serie)) { $err = true; $errtext .= 'в серии паспорта не может быть букв<br />'; } if (!$error) {действие} else {стоп} Не перестарался ли... Изменено 16 января 2016 пользователем zilber Цитата Ссылка на сообщение Поделиться на других сайтах
zilber 3 Опубликовано: 16 января 2016 Рассказать Опубликовано: 16 января 2016 Автор мне пришло в голову... а лучше использовать is_numeric или is_int? и имеет ли смысл регулярка на цифры, если мне доступна проверка на is_numeric (is_int)? если вводят номер телефона без разделителей или номер паспорта - достаточно ли проверить через is_numeric, или регуляркой - хуже не будет? Цитата Ссылка на сообщение Поделиться на других сайтах
alex32 942 Опубликовано: 16 января 2016 Рассказать Опубликовано: 16 января 2016 вообщето у нормальных разрабов достаточно хтмлслэш, остаьное шлак. а если беспокоишся, то ответ прост: лишней филтриации не бывает, не парься Цитата Ссылка на сообщение Поделиться на других сайтах
zilber 3 Опубликовано: 16 января 2016 Рассказать Опубликовано: 16 января 2016 Автор 30 минуты назад, alex32 сказал: вообщето у нормальных разрабов достаточно хтмлслэш, остаьное шлак. а если беспокоишся, то ответ прост: лишней филтриации не бывает, не парься ну я слабоват в теории и во всем остальном, собственно тоже. я про производительность волнуюсь) Цитата Ссылка на сообщение Поделиться на других сайтах
alex32 942 Опубликовано: 16 января 2016 Рассказать Опубликовано: 16 января 2016 не парься, четверть метра оперативы погоды не сделают. Цитата Ссылка на сообщение Поделиться на других сайтах
Рекомендованные сообщения
Присоединяйтесь к обсуждению
Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.