Перейти к содержанию
Innovialabs

PCI DSS: что нужно знать бизнесу, принимающему оплату картами

Практика4 мин

Коротко

PCI DSS — стандарт безопасности карточных платёжных систем для всех, кто работает с данными карт; проще всего соответствовать ему, если номера карт вообще не попадают на ваши серверы благодаря платёжной странице провайдера или токенизации.

Коротко

PCI DSS (Payment Card Industry Data Security Standard) — набор требований безопасности от международных платёжных систем: Visa, Mastercard и других. Он касается любого бизнеса, который хранит, обрабатывает или передаёт данные карт, независимо от размера.

Объём работы зависит от одного: насколько близко данные карт подходят к вашим системам. Если покупатель вводит карту на странице платёжного провайдера, а вы получаете только токен или статус оплаты, обязательства сводятся к короткой анкете. Если номера карт проходят через ваши серверы, на вас ложатся сотни требований, аудиты и сканирования.

Уровни соответствия

Платёжные системы делят мерчантов на уровни по числу транзакций в год. Пороги у каждой системы свои, а ваш уровень определяет банк-эквайер или платёжный провайдер. Пример — классификация Visa:

УровеньТранзакций в годКак подтверждается
1Более 6 млнАудит на месте от QSA, Report on Compliance
2От 1 до 6 млнАнкета самооценки (SAQ)
3От 20 тыс. до 1 млн в e-commerceSAQ
4Менее 20 тыс. в e-commerceSAQ

Малый и средний бизнес почти всегда попадает на уровень 3 или 4. Для него соответствие — это ежегодная SAQ нужного типа, подписанный Attestation of Compliance (AOC) и, для некоторых типов SAQ, ежеквартальное внешнее сканирование уязвимостей от сертифицированного вендора (ASV).

Типы SAQ: какой ваш

Тип SAQ определяется способом приёма платежей, а не размером бизнеса.

  • SAQ A — интернет-магазин, у которого платёжная страница целиком размещена у PCI-сертифицированного провайдера (редирект или iframe). Самая короткая анкета.
  • SAQ A-EP — ваш сайт не получает данные карт, но управляет платёжной страницей: например, ваш JavaScript рисует форму и отправляет данные напрямую провайдеру. Требований заметно больше.
  • SAQ B / B-IP — офлайн-точки с автономными терминалами.
  • SAQ C-VT — сотрудники вручную вводят карты в виртуальный терминал провайдера.
  • SAQ P2PE — терминалы из сертифицированного решения point-to-point encryption.
  • SAQ D — всё остальное, включая любую схему, где данные карт доходят до ваших серверов. По сути, полный стандарт.

Разница между SAQ A и SAQ D — несколько десятков вопросов против сотен мер контроля сети, серверов, логов, доступов и процесса разработки.

Почему платёжная страница и токенизация сокращают scope

Scope — все системы, которые хранят, обрабатывают или передают данные карт, плюс всё, что с ними связано. Чем меньше систем в scope, тем меньше нужно защищать и доказывать.

  • Платёжная страница провайдера. Stripe Checkout, страницы оплаты Payme или Click: покупатель вводит карту у провайдера или в его iframe, а вы получаете статус платежа. Ваши серверы номер карты не видят.
  • Токенизация. Фронтенд-компонент провайдера (Stripe Elements, форма привязки карты) отправляет карту напрямую провайдеру и возвращает токен. Бэкенд хранит и списывает только токен, а вне вашего аккаунта у этого провайдера он бесполезен.
  • Рекуррентные платежи устроены так же: вы храните токен, а не карту.

Формально PCI DSS — стандарт международных платёжных систем. Для национальных карт вроде Uzcard и Humo правила задают процессинговые центры и договор с провайдером, но принцип тот же: не пускать данные карт в свои системы.

Ошибки, которые затягивают данные карт на ваши серверы

  • Собственная форма оплаты, отправляющая карту на ваш бэкенд, который пересылает её в API провайдера. Даже если вы ничего не храните, данные прошли через вас — это SAQ D.
  • Логирование тел запросов. Отладочные логи, API-шлюзы и трекеры ошибок незаметно записывают номера карт. Маскируйте поля или отключите логирование тел на платёжных маршрутах.
  • Хранение CVV/CVC. Код безопасности нельзя хранить после авторизации ни в каком виде, даже зашифрованным.
  • Сторонние скрипты на странице оплаты. Аналитика, чат-виджеты и инструменты записи сессий могут читать поля форм. Держите страницу оплаты минимальной и контролируйте каждый скрипт на ней.
  • Карты через каналы поддержки. Клиенты присылают фото карт в Telegram, менеджеры записывают номера под диктовку по телефону, и данные оседают в переписке и CRM.
  • Полные номера карт «для удобства» — для возвратов или повторных заказов вместо токенов и API возвратов провайдера.
  • Забытая страница перед оплатой. Даже с SAQ A: если ваш сайт взломан, злоумышленник может подменить редирект или iframe на фальшивую форму.

Чек-лист

  1. Уточните у эквайера или провайдера свой уровень и тип SAQ.
  2. Используйте платёжную страницу, iframe или токенизацию, чтобы попасть в SAQ A.
  3. Найдите номера карт в логах, базах, бэкапах и CRM и удалите их.
  4. Защитите сам сайт: HTTPS, обновления, 2FA для администраторов, минимум скриптов на оплате.
  5. Запросите у провайдера его собственный AOC.
  6. Повторяйте SAQ ежегодно и при каждом изменении платёжного процесса.

Стандарт и формы SAQ — в официальной библиотеке документов PCI SSC.

Частые вопросы

Да, стандарт распространяется на всех, кто принимает карты, независимо от оборота. С платёжной страницей провайдера соответствие обычно сводится к SAQ A — короткой ежегодной анкете.

Поможем с этим

Если хотите не разбираться самим, а получить результат — этим мы занимаемся каждый день.

Обсудить проект

Читайте также

Есть идея или задача? Расскажите нам

Ответим в течение рабочего дня и предложим решение. Консультация бесплатная.