0Pricing
PHP Academy · Урок

Проверка данных формы

Проверяйте введённые пользователем данные для обеспечения безопасности и корректности

«Проверка данных формы» — бесплатный урок PHP Academy на CoddyKit. Это урок 3 из 3. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения PHP Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс PHP Academy содержит 3 уроков всего.

Проверка и защита данных формы

Проверка и защита данных формы

Добро пожаловать на следующий урок! На этом уроке вы научитесь проверять и защищать пользовательские данные, чтобы ваши формы были корректными и защищёнными от вредоносных атак. Давайте начнём!

Проверка данных формы — иллюстрация 1

Зачем проверять и защищать входные данные?

Зачем проверять и защищать входные данные?

Проверка и защита данных формы необходимы, чтобы:

  • Обеспечить точность и удобство использования данных.
  • Защитить приложение от угроз безопасности, таких как SQL-инъекции и атаки XSS.

Ключевой момент: Всегда проверяйте и очищайте пользовательские данные перед их обработкой или сохранением.

Проверка входных данных

Проверка входных данных

Используйте встроенные функции PHP для проверки распространённых типов входных данных:

  • filter_var(): проверяет адреса электронной почты, веб-адреса и целые числа.
  • preg_match(): проверяет входные данные на соответствие регулярным выражениям.

Пример: проверка адреса электронной почты:

<?php
  if ($_SERVER["REQUEST_METHOD"] == "POST") {
    $email = $_POST["email"];
    if (filter_var($email, FILTER_VALIDATE_EMAIL)) {
      echo "Valid email: $email";
    } else {
      echo "Invalid email address.";
    }
  }
?>

Очистка входных данных

Очистка входных данных

Очищайте входные данные, чтобы удалять нежелательные символы или вредоносный код. Пример:

Совет: Используйте filter_var() с подходящими фильтрами для разных типов данных.

<?php
  if ($_SERVER["REQUEST_METHOD"] == "POST") {
    $name = filter_var($_POST["name"], FILTER_SANITIZE_STRING);
    echo "Sanitized Name: $name";
  }
?>

Предотвращение межсайтового скриптинга (XSS)

Предотвращение межсайтового скриптинга (XSS)

Экранируйте специальные символы, чтобы предотвратить атаки XSS. Используйте:

  • htmlspecialchars(): преобразует специальные символы в HTML-сущности.

Пример:

Совет: Всегда экранируйте пользовательские данные перед их отображением в браузере.

<?php
  if ($_SERVER["REQUEST_METHOD"] == "POST") {
    $comment = htmlspecialchars($_POST["comment"]);
    echo "Comment: $comment";
  }
?>

Предотвращение SQL-инъекций

Предотвращение SQL-инъекций

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

Ключевой момент: Всегда используйте подготовленные выражения при взаимодействии с базой данных.

<?php
  $pdo = new PDO("mysql:host=localhost;dbname=testdb", "root", "");
  $stmt = $pdo->prepare("SELECT * FROM users WHERE username = :username");
  $stmt->execute(["username" => $_POST["username"]]);
  $user = $stmt->fetch();
?>

Распространённые шаблоны проверки

Распространённые шаблоны проверки

Вот несколько распространённых шаблонов:

  • Проверка номера телефона: preg_match('/^\d{10}$/', $phone)
  • Проверка пароля: проверьте его длину и сложность.

Пример: проверка надёжного пароля:

<?php
  if ($_SERVER["REQUEST_METHOD"] == "POST") {
    $password = $_POST["password"];
    if (strlen($password) >= 8 && preg_match('/[A-Z]/', $password)) {
      echo "Strong password!";
    } else {
      echo "Password must be at least 8 characters long and include an uppercase letter.";
    }
  }
?>

Защита загрузки файлов

Защита загрузки файлов

Для форм, обрабатывающих загрузку файлов:

  • Проверяйте тип и размер файла.
  • Храните файлы в защищённой папке за пределами корневой папки веб-сервера.

Пример:

<?php
  if ($_FILES["file"]["size"] < 500000 && in_array($_FILES["file"]["type"], ["image/jpeg", "image/png"])) {
    move_uploaded_file($_FILES["file"]["tmp_name"], "/secure/location/" . $_FILES["file"]["name"]);
    echo "File uploaded successfully!";
  } else {
    echo "Invalid file.";
  }
?>

Отличная работа!

Отличная работа!

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

Проверка данных формы — иллюстрация 10

Часто задаваемые вопросы

Урок «Проверка данных формы» бесплатный?

Да — полный текст урока «Проверка данных формы» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс PHP Academy, подпишись на CoddyKit PRO. Курс PHP Academy содержит 3 уроков всего.

Чему я научусь в уроке «Проверка данных формы»?

Проверяйте введённые пользователем данные для обеспечения безопасности и корректности Ты практикуешь PHP Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать PHP Academy?

Предыдущий опыт не требуется. PHP Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 3 из 3.

Сколько времени занимает урок «Проверка данных формы»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке PHP Academy?

Да. Каждый урок PHP Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Создание HTML-форм
  2. Обработка данных форм с помощью PHP
  3. Проверка данных формы
← Назад к PHP Academy