В данной заметке речь пойдет о безопасности при написании скрипта на php в котором мы принимает заданные числовые значения.
Допустим у нас имеется вот такая html форма с выбором пола, с помощью которой мы фильтруем некоторые данные.
<form method="POST" action=""> <select name="sex"> <option value=0>Не указывать</option> <option value=1>Женский</option> <option value=2>Мужской</option> </select> </form>
То есть данные, переданные от пользователя, могут принимать значения от 0 до 2.
После этого мы, например, отправляем запрос на выборку из базы данных следующего вида:
select * FROM table_name WHERE sex = '$sex'
где $sex – это переменная, которую мы приняли от пользователя, но перед этим, мы должны использовать обработку входных данных, чтобы в запросе участвовала переменная, значение которой было бы предопределено нами.
Делаем так:
<?php switch ($_POST['sex']) { case 0: $sex = 0; break; case 1: $sex = 1; break; default: $sex = 2; } ?>
То есть если передан 0, то переменной $sex присваиваем 0, если 1, то 1, иначе – во всех остальных случаях, независимо от того, что передал нам пользователь – хоть sql запрос – в переменную попадет 2.
Как видите, в любом случает будет безопасным.
На этом все, желаю вам удачи!
Если вам нужна помощь в создании какого-либо функционала, сайта, сервиса, тестов или калькуляторов, то готов помочь, подробнее на странице услуг.