Режим практики

Задания по ревью кода

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

Две фазы. Одно задание.

01
Обнаружение

Найдите уязвимый блок

Разработчику показывают фрагмент кода из реального мира с одной или несколькими уязвимыми строками. Он кликает на блок, в котором, по его мнению, содержится уязвимость. Никакого множественного выбора — нужно читать код и рассуждать о том, что не так.

  • Продакшен-реалистичные паттерны кода
  • Выбор кликом по реальной строке кода
  • Допускается несколько попыток
02
Устранение

Выберите правильное исправление

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

  • Выбор исправления из нескольких вариантов
  • Правдоподобные, но неверные дистракторы
  • Объяснение раскрывается после ответа

Задание в процессе.

auth-controller.js
1const express = require('express')
2const db = require('./db')
3 
4const q = `SELECT * FROM users WHERE email = '${email}'`
5const rows = await db.execute(q)
6return rows[0]
Фаза 1 — Найдите уязвимость

Настроено для обучения, а не для отсева.

Подсказки без штрафа

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

Оценка на основе попыток

Балл рассчитывается исходя из количества попыток в каждой фазе. Меньше попыток = выше балл. Успех с первой попытки в обеих фазах даёт максимальный результат.

Объяснение после каждого ответа

После выбора исправления — правильного или нет — платформа показывает, почему каждый вариант безопасен или небезопасен. Дистракторы не просто помечены как неверные; объясняется механизм их провала.

Чтение уязвимого кода — это и есть реальная работа.

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

Попробуйте задание самостоятельно.

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