Все уроки | Уровень
Выпускной
0%
0 / 21

Видео урока скоро будет доступно

Урок 9

Безопасность и финальная презентация

SSL-сертификат, reCAPTCHA, политика конфиденциальности, презентация проекта и получение сертификата.

3 часа Выпускной

Цели урока

После этого урока вы:

  • Поймёте, какие риски существуют для сайта и как их избежать.
  • Настроите бесплатный SSL-сертификат для кастомного домена.
  • Добавите капчу на форму связи (reCAPTCHA v3).
  • Сгенерируете политику конфиденциальности с помощью AI.
  • Подготовите финальную презентацию своего проекта.
  • Получите сертификат о прохождении курса.

Почему безопасность важна?

Данные пользователей — вы собираете имена, телефоны, email. Их нужно защищать.

Репутация — если сайт взломают или данные утекут, вы потеряете доверие учеников.

Закон — в России действует 152-ФЗ (о персональных данных), в Европе — GDPR.

Основные угрозы:

  • Перехват данных — если сайт работает по HTTP (без шифрования), данные могут быть перехвачены.
  • Спам-боты — автоматически заполняют формы, засоряя базу.
  • Фишинг — злоумышленники могут подделать ваш сайт и собирать данные.

Как защитить сайт

ИнструментЗачемКак
SSL/HTTPSШифрует данные между пользователем и серверомВстроенный механизм GitHub Pages (Let's Encrypt) или Cloudflare
КапчаОтличает человека от ботаGoogle reCAPTCHA v3
Политика конфиденциальностиИнформирует пользователей о сборе данныхГенерируем через AI
Согласие на обработкуПользователь даёт разрешение на сбор данныхГалочка в форме

Что такое SSL?

SSL (Secure Sockets Layer) — протокол, который шифрует данные между браузером и сервером.

Если сайт работает по HTTPS, данные защищены. Если по HTTP — любой в той же сети может их перехватить.

GitHub Pages автоматически даёт HTTPS для доменов *.github.io. Но если у вас свой домен, нужно настроить SSL самостоятельно.

Хорошая новость: GitHub Pages поддерживает бесплатные SSL-сертификаты от Let's Encrypt для кастомных доменов.

Что такое капча?

Капча — тест, который отличает человека от бота.

reCAPTCHA v3 работает незаметно для пользователя (не нужно кликать по картинкам). Она анализирует поведение пользователя и даёт оценку (от 0 до 1). Если оценка низкая — можно показать ошибку или заблокировать отправку.

Преимущество: пользователи не замечают капчу — они просто заполняют форму, а проверка происходит «под капотом».

Шаг 1.1. Настройка DNS

Чтобы GitHub мог выдать сертификат, ваш домен должен правильно указывать на GitHub Pages.

Для корневого домена (example.com) — добавьте A-записи:

  • 185.199.108.153
  • 185.199.109.153
  • 185.199.110.153
  • 185.199.111.153

Для поддомена (www.example.com) — добавьте CNAME-запись, указывающую на username.github.io.

Важно: Убедитесь, что нет конфликтующих записей (например, ALIAS/ANAME на github.io вместе с A-записями).

Шаг 1.2. Активация HTTPS в GitHub Pages

  1. Перейдите в ваш репозиторий на GitHub.
  2. Зайдите в Settings → Pages.
  3. В разделе Custom domain введите ваш домен и нажмите Save.
  4. GitHub начнёт автоматическую проверку DNS (DNS check in progress).
  5. Если проверка успешна, GitHub запросит TLS-сертификат у Let's Encrypt.
  6. Когда сертификат будет выпущен, появится галочка Enforce HTTPS.
  7. Установите галочку Enforce HTTPS — теперь все посетители будут перенаправляться на HTTPS.

Готово: Замок в адресной строке — SSL работает.

Шаг 1.3. Если HTTPS не появляется

Проверьте DNS: убедитесь, что записи настроены точно как в шаге 1.1.

Проверьте CAA-записи: если у домена есть CAA-записи, они должны разрешать letsencrypt.org.

Перезапустите процесс: в настройках Pages нажмите Remove рядом с кастомным доменом, подождите минуту, введите домен заново и нажмите Save.

Подождите: иногда процесс выдачи сертификата может занять до 24 часов.

Шаг 1.4. Альтернатива — Cloudflare

Если встроенный SSL не включается, используйте Cloudflare:

  1. Зарегистрируйтесь на cloudflare.com и добавьте ваш сайт.
  2. Настройте DNS через Cloudflare (замените NS-записи у регистратора).
  3. В разделе SSL/TLS выберите режим Full (или Full (strict)).
  4. Включите Always Use HTTPS.

Бонус: Cloudflare бесплатен и даёт дополнительный CDN (ускорение сайта).

Шаг 2.1. Регистрация reCAPTCHA v3

  1. Перейдите на google.com/recaptcha.
  2. Нажмите + (создать новый ключ).
  3. Выберите reCAPTCHA v3.
  4. Введите название (например, «Мой сайт»).
  5. Добавьте домен вашего сайта (например, ваш-сайт.ru).
  6. Нажмите Submit.

Важно: Для локальной разработки добавьте localhost в список доменов.

Шаг 2.2. Получение ключей

После регистрации вы получите два ключа:

  • Site key — для клиентской части (вставляется в HTML/JavaScript).
  • Secret key — для серверной проверки (храните в секрете!).

Никогда не публикуйте Secret key в открытом доступе. Если ключ утёк — сгенерируйте новый в консоли reCAPTCHA.

Сохраните оба ключа в надёжном месте.

Шаг 2.3. Добавление кода на страницу

Попросите AI сгенерировать код для вставки reCAPTCHA:

«Добавь на мою страницу reCAPTCHA v3. Используй site key: [ваш ключ]. При отправке формы проверяй токен и показывай сообщение об ошибке, если оценка меньше 0.5. Весь код на JavaScript.»

Скопируйте сгенерированный код и вставьте на свою страницу.

Шаг 2.5. Проверка reCAPTCHA

  1. Заполните форму и отправьте.
  2. Откройте консоль браузера (F12 → Console).
  3. Должен появиться токен (длинная строка).
  4. Если всё работает — капча добавлена.

Как это работает: Пользователь не видит капчу, но боты будут блокироваться. Если оценка меньше 0.5, можно показать ошибку или предложить пройти дополнительную проверку.

Шаг 3.1. Генерация политики конфиденциальности

Попросите DeepSeek написать политику конфиденциальности:

«Напиши политику конфиденциальности для сайта образовательного центра. Сайт собирает имя, телефон и email через форму заявки. Укажи: цель сбора, использование данных, передача третьим лицам (не передаём), хранение, права пользователей (доступ, изменение, удаление), срок хранения. Упомяни 152-ФЗ (для России). Текст на русском, понятный.»

Шаг 3.2. Добавление политики на сайт

  1. Создайте новую страницу privacy.html (или privacy.md).
  2. Вставьте сгенерированный текст.
  3. Добавьте ссылку на политику в футер и на форму заявки.
  4. Добавьте в форму галочку: «Я согласен на обработку персональных данных».
  5. При отправке формы проверяйте, что галочка стоит.

Важно: Без согласия пользователя вы не имеете права собирать данные (152-ФЗ, ст. 9).

Шаг 4. Финальная презентация

Подготовьте рассказ (2-3 минуты):

  • Что вы создавали (тема, цель).
  • Какие инструменты использовали.
  • Какие были сложности и как их преодолели.
  • Чему научились за курс.
  • Ссылка на сайт.

Демонстрация:

  • Покажите сайт в браузере.
  • Пройдите по основным блокам.
  • Покажите, что форма работает (отправьте тестовую заявку).
  • Покажите, что SSL работает (замок в адресной строке).

Домашнее задание

  1. Настройте SSL для своего кастомного домена (через GitHub Pages).
  2. Если нет кастомного домена — убедитесь, что GitHub Pages уже даёт HTTPS.
  3. Добавьте reCAPTCHA v3 на форму.
  4. Создайте и опубликуйте политику конфиденциальности.
  5. Добавьте галочку согласия на обработку данных.
  6. Подготовьте презентацию и запишите короткое видео (3-5 минут) с демонстрацией сайта.
  7. Опубликуйте все изменения на GitHub.
  8. Пришлите ссылку на сайт и видео-презентацию в чат группы.

Итог урока

Что мы узнали?

  • Как защитить сайт с помощью SSL (GitHub Pages или Cloudflare).
  • Как добавить капчу (reCAPTCHA v3).
  • Как создать политику конфиденциальности.
  • Как подготовить финальную презентацию проекта.

Главный итог: Ваш сайт полностью готов — он защищён, соответствует законодательству и готов к приёму первых учеников.

ПОЗДРАВЛЯЮ! ВЫ ЗАКОНЧИЛИ КУРС!

Что мы прошли за 9 уроков

Вайбкодинг
GitHub + VS Code
Первый сайт
Firebase
Git + Actions
Тестирование
SEO
Безопасность

Вы сделали это! Теперь вы можете создавать сайты для себя, своей школы или бизнеса — без программирования, с помощью AI.

Ваш сертификат

Введите ваше имя и фамилию, чтобы получить сертификат о прохождении курса.

Проверка прогресса курса…