Защита формы на языке программирования PHP

защита форм php
Метки: / /

В этой статье мы поговорим как происходит защита форм в языке программирования PHP, расскажу всё максимально понятно и подробно.

Также, перед прочтением статьи, можете прочитать
«Как сделать систему авторизации и регистрации на PHP».

Защита от ботов:

Пожалуй зашита от ботов самая простая, для этого вам надо создать капчу, для этого на сайте есть пару статей.

Лично я рекомендую использовать для этого Google ReCAPTCHA, так как это наиболее эффективный способ и подключение не очень сложное.

XSS защита в PHP:

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

Для тех кто не знает, что такое XSS атака, это когда в форму встраивают JS код, к примеру, и потом, когда другие пользователи видят это сообщение, у них может что-то ломаться, или даже забираться какие-то данные.

Регулярные выражения:

Суть в том, что после отправки формы, на сервере будут проходить проверку данные, которые прислал клиент, на PHP для этого будем использовать функцию preg_match(), которая находит первое попавшийся совпадение, но для начала взгляните на список самых полезных выражения.

  • «/^[A-Z0-9._%+-]+@[A-Z0-9-]+.+.[A-Z]{2,4}$/i» — Проверка Email;
  • «/^[a-z0-9_-]{3,16}$/» — Простой логин;
  • «/^\+?(\d{1,3})?[- .]?\(?(?:\d{2,3})\)?[- .]?\d\d\d[- .]?\d\d\d\d$/» — Номер телефона;
  • «/^(?=.*[A-Z].*[A-Z])(?=.*[!@#$&*])(?=.*[0-9].*[0-9])(?=.*[a-z].*[a-z].*[a-z]).{8,}$/» — Сложный пароль;

Теперь сделаем не большую программу на языке программирования PHP, вот как выглядит форма.

Тут просто отправляем форму прямо в этот же скрипт, где она находится, вот сама не большая программа.

Вот результат если введём правильный Email.

XSS защита в PHP

Тут стоит сказать, что так как, мы использовали тип поля «email», у нас автоматически будет проверятся, что введён именно он, но проверку всё равно надо делать, потому что злоумышленник может отправить данные отдельно, например вписав их в URL, тем более когда используете GET.

Также, у этого способа есть не большой минус, он медленный, и им сложно заменять знаки, что бы код не в запросе не заработал, когда будет выводится в HTML, поэтому используете функции.

Функции:

Теперь разберём какие есть функции для проверки и защиты от XSS, их всего две, вот они.

  • filter_var() — Фильтрует переменные, в основном используется для проверки Email;
  • htmlspecialchars() — Функция нужна для замены некоторых знаков в строке, на HTML формат что бы браузер не понял программы.

Если с htmlspecialchars() всё понятно, вы просто в качестве параметра передаются строка, которую надо изменить, и возвращается она изменённая.

filter_var() используется в основном для проверки Email, но об этом подробнее прочитайте в статье «Проверка email в PHP на валидность», в остальном больше нечего рассказать, также посмотрите ссылку, там чуть больше узнаете о этой фукции.

Защита от SQL инъекций в PHP:

Про защиту от SQL инъекций в PHP, всё достаточно просто, вам нужно использовать класс PDO, для примера сделаем не большую функцию.

Это достаточно сложный код, поэтому расскажу саму суть, дело в том, что мы будем в SQL запросе оставлять грубо говоря не большие метки, которые будем потом заменять на значения из массива, используете эту функцию для зашиты, также подробнее про защиту и PDO, узнаете из ссылки.

Ещё если не хотите использовать PDO, то рекомендую как минимум пользоваться классом mysqli он тоже хорошо зашищён, а ещё лучше использовать библиотеку RedBean, там уже из коробки есть очень хорошая защита и построен на базе PDO, но при этом более простой.

Также для защиты от SQL инъекций подойдёт функция, о которой говорили пунктом выше, filter_var().

Вывод:

В этой статье вы прочитали как происходит защита форм на языке программирования PHP, всё очень просто.

Подписываетесь на соц-сети:

Оценка:

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд
(Пока оценок нет)
Загрузка...

Поделится:

Также рекомендую:

55058653