ИТ Блог. Администрирование серверов на основе Linux (Ubuntu, Debian, CentOS, openSUSE)

Стоит ли валидация формы на PHP?

Стоит ли валидация формы на PHP?

Вы когда-нибудь задумывались, сколько времени уходит на проверку формы PHP при разработке веб-формы?

Код проверки формы PHP – это набор правил проверки, который позволяет вам быстро и без особых усилий создавать проверку на стороне сервера для форм PHP. Проверка формы действительно важна для динамических веб-страниц.

Большая часть всех ведущих веб-сайтов сегодня работает на PHP. Поскольку веб-сайты больше не сводятся к информационным шлюзам и становятся бизнес-инструментами, вам следует выйти за рамки стандартных функциональных возможностей при разработке веб-страниц. Помимо посетителей и пользовательского опыта вашего веб-сайта, проверка веб-формы требует большей самоотдачи, поскольку она косвенно создает теплые отношения с потенциальными клиентами. Однако многие из нас игнорируют этот факт. В результате получаются сложные и неприятные веб-формы, которые предполагают негативный опыт, вредоносное манипулирование базой данных и сбой системы.

К счастью, проверка формы PHP – это не ракетостроение. PHP включает в себя множество отличных библиотек и встроенных проверок. Это просто куча проверок с использованием универсального скрипта проверки формы PHP.

 

Универсальный скрипт проверки формы PHP

Универсальный скрипт проверки формы PHP, такой как fi1a/validation, предназначен для упрощения процесса добавления проверки в ваши формы PHP. Единственное, что вам нужно сделать, это связать требование проверки каждого элемента вашей формы с доступным набором “дескрипторов проверки”. “Дескриптор проверки” – это строка, указывающая тип проверки, которая должна быть выполнена. Например, “alpha” указывает, что разрешены только буквенные символы, а “num” предназначен для проверки числовых данных. В таблице ниже перечислены общие общие дескрипторы проверки формы PHP:

Дескрипторы проверки Описание
req Поле является обязательным
num Проверяет числовые данные
alnum Поле должно содержать только буквенный или цифровой символ
email Проверьте действительный идентификатор электронной почты
alpha Проверка алфавитных данных
lt=??? Убедитесь, что входные данные меньше переданного значения
gt=??? Убедитесь, что входные данные больше переданного значения
maxlen=??? Проверьте длину ввода на максимальную
minlen=??? Убедитесь, что длина ввода соответствует требуемому минимуму

 

Важность проверки формы PHP

Основная цель кода проверки формы PHP – убедиться, что пользователь предоставил все необходимые данные и в правильном формате, чтобы успешно продолжить запрошенную операцию. PHP-код проверяет значения, введенные пользователем в форму, и, если они не соответствуют указанным критериям, они возвращаются обратно в форму со списком полей, вызывающих нарушения, вместе с сообщениями об ошибках. Неверный пользовательский ввод может привести к непредвиденным ошибкам в будущей обработке. Таким образом, PHP включает в себя бесчисленное множество встроенных функций проверки для проверки вводимых пользователем данных. Вот некоторые из встроенных функций проверки формы PHP:

Фильтры для проверки Описание
FITER_VALIDATE_DOMAIN Проверяет длину метки доменного имени
FILTER_VALIDATE_EMAIL Проверяет адрес электронной почты
FILTER_VALIDATE_FLOAT Проверяет данные как float и переводит в float при успешном завершении.
FILTER_VALIDATE_INT Проверяет данные как целочисленные и преобразует в целое число при успешном выполнении.
FILTER_VALIDATE_IP Проверяет данные как IP-адрес
FILTER_VALIDATE_MAC Проверяет данные как MAC-адрес
FILTER_VALIDATE_REGEXP Проверяет данные на соответствие регулярному выражению
FILTER_VALIDATE_URL Проверяет данные как URL

 

Пример: проверка формы с помощью PHP

Давайте рассмотрим пример создания и проверки формы с использованием PHP и HTML. Мы создадим простую форму с использованием HTML и обработаем, а также проверим содержимое формы с помощью функций проверки формы PHP. Прежде чем создавать HTML-форму, мы должны решить, какой HTTP-метод использовать в HTTP-запросе. Среди множества методов HTTP-запроса программисты обычно предпочитают использовать методы GET и POST для форм. Поскольку мы собираемся отправлять конфиденциальные данные, такие как электронные письма, с HTTP-запросом, мы переходим к POST. Метод GET можно использовать, когда мы хотим получить данные с сервера. Приведенный ниже пример иллюстрирует HTML-скрипт для простой формы:

Стоит ли валидация формы на PHP?

 

Когда пользователь заполняет форму выше и нажимает кнопку отправки, входные данные отправляются для обработки в файл PHP, “action.php ” показано ниже:
Стоит ли валидация формы на PHP?

 

Как мы можем видеть, сценарии проверки формы PHP в приведенном выше примере проверяют входные данные формы, чтобы избежать ошибок обработки.

Давайте рассмотрим, как может возникнуть ошибка. Предположим, что пользователь пропустил какое-либо из полей в форме выше. PHP-код проверяет, установлены ли все переменные с помощью функции empty(). Эта функция предназначена для проверки того, являются ли данные аргументы пустыми или нет. Вот описание функции:

Функция Empty()
Синтаксис

 

empty ( $var)
Значения отображаются как пустое значение:

 

NULL

FALSE

0 – 0 как целое число

“0” – 0 в виде строки

0.0 – 0 в качестве значения с плавающей запятой

“” – пустая строка

array() – пустой массив

 

Если не заданы переменные email, name, phone или gender, PHP-скрипт выдаст сообщение об ошибке “—– field is required”.Если первая проверка завершается неудачей, скрипт прекращает выполнение последующих правил проверки.

Когда пустой ($_POST[$key] && in_array($key, $validateArray)) не является пустым, PHP-скрипт переходит к дальнейшей проверке.

Затем мы проверили электронное письмо с помощью функции filter-var () и флага FILTER_VALIDATE_EMAIL. Если электронное письмо неверно, сценарий проверки возвращает false.

Последняя проверка формы PHP в приведенном выше сценарии – проверка номера телефона. Скрипт проверяется с помощью filter-var () и флага FILTER_VALIDATE_INT. Этот метод может проверять любой целочисленный ключ (например, groupId, userId и т. д.) В метке времени, базе данных и т. д. Основное преимущество этой функции заключается в том, что она преобразует строковые числа “15”, например, в фактические целые числа 15.

Поскольку мы сохранили сообщения об ошибках в сеансе, любая ошибка проверки возникает в ation.php страница перенаправит страницу обратно на страницу формы.Стоит ли валидация формы на PHP?

 

PHP-скрипт на странице формы повторяет сообщение сеанса, как показано ниже, и отображает пользователю сообщение об ошибке:Стоит ли валидация формы на PHP?

 

Проверка формы PHP и проверка безопасности формы

Большинство людей думают, что проверка формы и проверка безопасности формы – это одно и то же. Однако безопасность формы – это отдельный процесс, который следует обрабатывать вместе с проверкой формы PHP. Кроме того, проверка безопасности формы должна быть добавлена к проверке формы, чтобы предотвратить вредоносные эксплойты веб-страниц. Неправильная проверка пользовательского ввода может увеличить риск уязвимостей в системе безопасности. Злоумышленники могут воспользоваться этой возможностью и нацелиться на вашу веб-страницу с помощью следующих атак:

 

Пример для предотвращения XSS с использованием проверки формы PHP

Давайте подробно рассмотрим атаку XSS и то, как предотвратить ее с помощью проверки формы PHP и проверки безопасности. Согласно нашей приведенной выше странице формы, когда пользователь вводит имя, оно будет сохранено в базе данных без какой-либо проверки. Представьте, что злоумышленник вводит следующий скрипт в поле name:

<script>location.href=’https://www.xyz.com ‘</script> 

 

В результате вредоносный скрипт сохраняется в базе данных, а веб-страница отображает скрипт в качестве имени. Затем каждый пользователь, посетивший веб-страницу, будет перенаправлен на сайт злоумышленника. Именно так хакеры выполняют межсайтовую скриптовую атаку (XSS):

С помощью PHP довольно просто защитить нашу веб-страницу от XSS-атаки. Вот пример:
Стоит ли валидация формы на PHP?

 

функция htmlspecialchars() PHP экранирует HTML-код и преобразует входные данные, как показано ниже:

Обработка входных данных перед проверкой
<script>location.href=’https://www.xyz.com ‘</script>
Обработка входных данных после проверки
<script>расположение.href=’https://www.xyz.com ‘</script>

 

Кроме того, функция trim() удаляет лишние пробелы; следовательно, дополнительные пробелы во входных данных не будут занимать место в базе данных.

 

Лучше перестраховаться, чем потом сожалеть

Проверка формы PHP – это крошечные шаги, которые могут помочь пользователю заполнить форму легко и как можно быстрее. Кроме того, они позволяют проводить необходимую проверку пользовательского ввода, не отправляя ничего в базу данных. Когда пользователь заполняет форму, если неясно, что он делает не так, и нет никакого сообщения, которое могло бы его направить, тогда он, скорее всего, сдастся и перейдет на другой веб-сайт. Выполнение проверки данных формы во время ее ввода означает, что пользователь может быть точным и уверенным в своем вводе, и это позволяет избежать нежелательных разочарований.

Exit mobile version