Создание капчи для защиты от спамеров в Интернете — Учебное пособие по gD-библиотеке PHP, часть 3

Создание капчи для защиты от спамеров в Интернете — Учебное пособие по gD-библиотеке PHP, часть 3

4 января 2023 г.

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

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

Если вы хотите просмотреть исходный код этого руководства, посетите мой Github_Repository. Выразите свою признательность, подписавшись на меня на GitHub.

Необходимое условие

  1. Редактор кода (по сравнению с Code или Sublime text)
  2. Убедитесь, что на вашем хосте установлена ​​библиотека GD(Graphics Draw). У большинства веб-хостов он уже есть. Но если нет, вы можете установить его, следуя инструкциям.< /сильный>

Что нужно знать о Captcha

Здесь мы расскажем, как сделать капчу с помощью библиотеки GD. Мы также рассмотрим проверку кода PHP на стороне сервера. Наконец, мы узнаем, как включить Captcha в контактную форму.

В Интернете существуют мошенники и хакеры, которые создают опасные приложения, чтобы получить доступ к вашему приложению. У вас могут быть большие проблемы из-за XSS-атак, SQL-инъекций и массовых спам-рассылок.

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

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

В CAPTCHA используется случайно сгенерированный код. Происходит серийное производство. Он появляется в различных формах. Вот несколько примеров популярных типов Captcha:

Аудио, графика (изображение) и текст

Пользователь должен ввести случайное число, составляющее код капчи. Валидация гарантирует, что значение ввел настоящий человек; по сути, бот с трудом заполняет код капчи. Таким образом можно избежать спама.

PHP Captcha с формой регистрации с использованием библиотеки GD

Теперь мы будем работать над одним из самых простых примеров реализации скрипта PHP CAPTCHA. Я создал этот проект, чтобы показать вам основы использования CAPTCHA для защиты от спама.

Вы можете получить представление о том, как мы планируем использовать наш бесплатный скрипт проверки подлинности PHP для защиты от спама, ознакомившись со структурой проекта ниже.

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

--How_to_build_a_simple_captcha_with_PHP_GD
  |-- css
    |-- style.css
  |--- fonts
    |-- Monofont.ttf
  |-- js
  |--- captcha.php
  |--- config.php
  |-- footer.php
  |--- form.php
  |--- header.php
  |-- index.php
  |-- register_action.php

Контактная форма HTML с капчей

В контактной форме есть файл с именем header.php, поэтому создайте файл с именем header.php, файл header.php содержит объявление HTML Doctype и набор тегов ссылок. Страница заголовка является продолжением страницы указателя. Я разделил полную страницу указателя на три части: заголовок, указатель и нижний колонтитул. затем я включил их на индексную страницу, используя оператор php include. Ниже приведен фрагмент кода header.php

https://gist.github.com/emmykolic/9f4309e604e3c61c11caec4d239416b4 n

Кроме того, контактная форма имеет файл с именем footer.php, поэтому создайте файл, назовите его footer.php, файл footer.php содержит закрытие тела и тег HTML, а также некоторый набор тегов script. Ниже приведен фрагмент кода файла footer.php

https://gist.github.com/emmykolic/ca7fb5b4a0e7cfeeeefefc1552a36a40

Первая страница, которую вы увидите, когда откроете проект на своем локальном хосте, — это страница Index.php, которая представляет собой страницу с капчей, которая выполняет проверку по капче перед тем, как перейти на страницу регистрации. Ниже приведен фрагмент кода для index.php.

https://gist.github.com/emmykolic/59debb5828a44ad1e70ee14bc50d4108

После написания приведенного выше фрагмента кода вам придется выполнить некоторые стили, хотя я использовал Bootstrap v5 для структуры и макет всего интерфейса проекта. И мы стилизовали некоторые теги и объявили переменную в CSS. Ниже приведен фрагмент кода CSS для оформления.

https://gist.github.com/emmykolic/d601094b3dd28a09ba778674bffa9a6d

Создание страницы с проверкой Теперь создайте новый файл и назовите его captcha.php, страница с проверкой будет связана с ранее созданным файлом index.php. Каждый код, который мы будем писать на странице с проверкой, будет связан с тегом изображения, таким как фрагмент кода, который вы видите ниже.

<img style="display: block; margin: 10%;" src="captcha.php" alt="image verification" />

В теге изображения мы написали встроенный CSS, который сделал так, чтобы наша капча позиционировалась так, как она есть.

В то время как src='' мы использовали его для ссылки на страницу captcha.php, что означает, что все, что находится на странице captcha, будет отображаться в виде изображения. Приведенный ниже код должен быть вставлен в ваш файл Captcha.php. Внимательно посмотрите на код, вы заметите, как мы получили числа капчи.

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

Просто внимательно посмотрите на фрагмент кода, и вы поймете, что мы там сделали. Вставьте приведенный ниже фрагмент кода в файл captcha.php.

https://gist.github.com/emmykolic/6ee121a8d6c807e1365403451bf24e76

После запуска приведенного выше фрагмента интерфейса ниже вы увидите то, что вы увидите на странице index.php в вашем браузере.

The View Of The Index Page When You’re Done With Everything.

Подключите капчу к регистрационной форме

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

Теперь вы создадите страницу с именем form.php и еще одну страницу с именем config.php. Конфигурация будет страницей, содержащей подключение к базе данных, ниже приведен фрагмент кода для страницы конфигурации.

https://gist.github.com/emmykolic/c0850eb855c6203e297aabe93c7ebbd3

При использовании вашего form.php вы сначала включите config.php, затем вы включите header.php, прежде чем писать код для создания формы. Ниже приведен фрагмент созданного вами файла form.php.

https://gist.github.com/emmykolic/2554b8b502e63706feb402ec68c26d10

Обратите внимание, что вы должны включить верхний и нижний колонтитулы. Так что форма будет иметь хороший рабочий стол и адаптивный вид. Если вы одновременно будете следовать коду, интерфейс, показанный ниже, — это то, что вы увидите в своем браузере.

After your captcha has been checked, here is the next page you will see

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

Ниже приведена страница действий form.php.

https://gist.github.com/emmykolic/895e9c9042e05542e94ba69a652f061e

На странице regster_action.php мы выбрали значения в атрибуте name на нашей странице form.php, сохранили их в переменной, похожей на их имена, и выполнили некоторые процессы проверки.

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

After Submitting the form Here’s what you will see

Заключение

Мы подошли к концу этого руководства, надеюсь, вы получили массу пользы от этого руководства.

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

Это конец этой серии библиотек GD, надеюсь, вы многого добились. Нравится этот урок, оставьте комментарий!!

До следующего раза, хорошего дня!


Оригинал