Что такое PCI DSS и что это значит для интернет-магазина
Основы3 минРедакция Innovialabs
Коротко
PCI DSS — обязательный стандарт защиты данных банковских карт для всех, кто их принимает; магазин, который отдает ввод карты на страницу платежного провайдера и работает только с токенами, сводит свои обязательства к минимуму.
Коротко: что такое PCI DSS
PCI DSS (Payment Card Industry Data Security Standard) — стандарт безопасности данных платежных карт. Его разработал совет PCI SSC, созданный крупнейшими международными платежными системами, включая Visa и Mastercard.
Стандарт обязателен для всех, кто принимает, обрабатывает, хранит или передает данные карт этих систем: магазинов, платежных провайдеров, хостингов, процессинговых центров. Соблюдение контролирует не государство, а платежные системы через банк-эквайер. За нарушения и утечки грозят штрафы, а в худшем случае — отключение от приема карт.
Зачем он нужен
Номер карты, срок действия и CVV — это все, что нужно мошеннику для оплаты в интернете. Утечка из одного магазина затрагивает тысячи держателей карт. PCI DSS задает единый минимум защиты:
- защищенная сеть и межсетевые экраны;
- шифрование данных карт при хранении и передаче;
- запрет хранить CVV и данные магнитной полосы после авторизации;
- контроль доступа и журналирование действий;
- регулярное обновление ПО, сканирование уязвимостей и тесты на проникновение;
- политика безопасности и обучение сотрудников.
Уровни соответствия
Уровень магазина (merchant level) зависит от годового числа транзакций по картам. Пример — классификация Visa:
| Уровень | Число транзакций в год | Как подтверждается соответствие |
|---|---|---|
| 1 | Более 6 млн, а также после утечки | Аудит сертифицированным аудитором (QSA) |
| 2 | От 1 до 6 млн | Анкета самооценки (SAQ), иногда аудит |
| 3 | От 20 тыс. до 1 млн онлайн-транзакций | Анкета самооценки |
| 4 | До 20 тыс. онлайн-транзакций | Анкета самооценки, по требованию эквайера |
У других платежных систем пороги похожи, но могут отличаться. Точный уровень и порядок отчетности сообщает ваш эквайер или платежный провайдер.
Кроме уровня важен тип анкеты SAQ — он зависит от того, как вы принимаете оплату:
- SAQ A — карта вводится только на странице провайдера (редирект или iframe). Самый короткий список требований.
- SAQ A-EP — форма на вашем сайте, но данные уходят напрямую провайдеру. Ваш сайт влияет на безопасность платежа, поэтому требований больше.
- SAQ D — вы сами принимаете и обрабатываете данные карт на своих серверах. Полный объем стандарта.
Как снизить свои обязательства
Главный принцип — не прикасайтесь к данным карт. Чего нет на ваших серверах, то не может утечь.
Платежная страница провайдера (hosted payment page). Покупатель нажимает «Оплатить» и попадает на страницу платежного сервиса, например Stripe Checkout, или на страницу оплаты локального провайдера. Номер карты вводится там, а ваш сайт получает только результат: оплачено или нет.
Встраиваемые поля провайдера (iframe). Форма выглядит частью вашего сайта, но поля карты технически загружаются с сервера провайдера.
Токенизация. После первой оплаты провайдер хранит карту у себя и выдает вам токен — случайную строку, которая бесполезна вне его системы. Для подписок и повторных покупок вы списываете деньги по токену, не видя номера карты.
{
"customer_id": "c_1042",
"payment_token": "tok_8f3a91c2",
"card_last4": "4242",
"card_brand": "visa"
}
Так допустимо хранить в своей базе: токен, последние четыре цифры и тип карты. Полный номер и CVV — никогда.
Частые ошибки
- Логировать запросы с данными карт в отладочных логах.
- Просить клиента прислать номер карты в чат или по email.
- Считать, что раз оплату принимает провайдер, о безопасности сайта можно не думать: взломанная страница может подменить ссылку на оплату.
- Не обновлять CMS и плагины на сайте с платежной формой.