← Все комнаты Путь «Первые шаги» →Путь «Защита (код)» →
НовичокЗащита (код) Код Осенний CTF

Маска карты

Прогресс комнаты 0 / 4
Задание 1Введение

Цель: Маскировать номера карт в интерфейсах и логах.

Напишите mask_card(num): замените все цифры, кроме последних четырёх, на *. Пробелы и дефисы сохраните.

Задание 2Теория и инструменты

Стандарт PCI DSS разрешает показывать не больше первых 6 и последних 4 цифр номера карты.

Маскирование применяют при выводе и логировании, а полный номер хранят только в токенизированном виде.

Инструменты

  • Python 3 или Node.js
  • Встроенные тесты в редакторе

Больше теории — в разделе «Обучение: Защита (код)».

Задание 3Практика: напишите код

Примеры

Пример 1
mask_card("4111 1111 1111 1234")
→ "**** **** **** 1234"
Пример 2
mask_card("5500-0000-0000-0004")
→ "****-****-****-0004"

Ещё 5 скрытых тестов.

solution
Ctrl+Enter — отправить Войдите, чтобы отправить

Пошаговый план — открывайте по одному шагу

  1. 1
    Посчитайте количество цифр.

Подсказки — каждая до решения стоит −10 очков

Задание 4Как защититься

Маскируйте данные на уровне логгера, чтобы номер не попал в журналы даже по ошибке.

Разборы участников

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