Безопасно ли сохранять карты оплаты в онлайн магазинах?

Не сильно активно пользуюсь услугами онлайн магазинов. В последнее время стал замечать, что при покупке чего-либо на «Озоне» или «Валдберриес», у меня не требуют код из смс сообщения от банка. Я просто нажимаю «купить» и всё, денежки улетают.

1515

Расскажу про платёжный шлюз Сбера, т.к. интегрировал его в несколько интернет-магазинов и сервисы типа "личный кабинет". Предполагаю что во всех остальных местах это работает плюс-минус так же.

Сначала немного общей инфы для понимания.

1. Для того, что бы пользоваться платёжным шлюзом вы должны пройти регистрацию. Для этого связываетесь с менеджером, передаёте кучу документов, подписываете договор. Банк проверяет ваш интернет магазин, он должен соответствовать ряду требований: на нём должна быть полная информацию о вашем юр. лице (как минимум наименование, ИНН, адрес), должна быть информация об оплате, доставке (если вы что-то доставляете), возврате. Если всё ок вы получаете учётные данные для доступа к шлюзу, сначала к тестовому. По завершении процесса интеграции и прохождения модерации получаете доступ к боевому шлюзу. За вашими учётными данными так же закрепляется информации о том, куда банк должен переводит деньги, который вы через этот платёжный шлюз гоните. Сюда же идёт и все ваши права и разрешения: валюты, которыми можно платить, можете ли вы возвращать и отменять платежи, доступен ли вам механизм связок (см. ниже) и т.п.

2. Данные карты вводятся на стороне банка, банк прямо запрещает делать это на стороне сервиса. Все данные карты так же отправляются напрямую в платёжный шлюз банка. Сама страница с формой ввода данных карты так же хостится на стороне банка. Почти все банки предоставляют возможность кастомизировать эту страницу. Кастомные страницы всегда проходят модерацию, там довольно строгий полный перечень того, что на ней можно делать, а чего нельзя. Многие интернет магазины хитро кастомизируют эту страницу так, что бы она красиво вписывалась в iFrame, тогда создаётся иллюзия, что вы вводите данные на странице магазина, но на самом деле вводите их в iFrame, конттент для которого грузится с платёжного шлюза банка.

3. Взаимодействие с платежным шлюзом в общем случае выглядит так. Ваш сервис отправляет в банк запрос на создание заказа, туда передаётся как минимум сумма и валюта (т.е. это делается не на стороне пользователя, через браузер, а через API платёжного шлюза). В ответ банк присылает уникальную ссылку на страницу ввода данных карты, на которую вы, тем или иным образом, перенаправляете пользователя. По этой ссылке будет форма ввода данных карты. Пользователь вводит данные, проходит весь этап подтверждения оплаты, после завершения платежа редиректися обратно к вам (ссылку для редиректа вы можете передать в момент создания заказа, вместе с суммой). Это простой базовый сценарий. Разумеется в шлюзе куча методов: проверка статуса заказа, отмена, возврат и т.п. Есть колбеки. Можно использовать эти методы, для реализации самых разных сценариев.

Что касается сохранения данных карты. Это работает следующим образом. В терминах платёжного шлюза сбера это называется "связка". Создаётся она следующим образом: вы создаёте заказ (например на 1 рубль), передаёте в платёжный шлюз, помимо суммы, идентификатор пользователя (должен быть уникальным в рамках вашей учётной записи в шлюзе). Платтёжный шлюз в ответ возвращает вам ссылку на форму оплаты (см. выше) и идентификатор связки. Пользователь проходит весь этап оплаты как описано выше. После того как платёж завершился вы возвращаете этот рубль через отмену платежа. Смысл всех этих телодвижений как раз в том, что бы получить идентификатор связки. Именно его вы сохраняете.

Теперь, когда пользователь будет у вас что-то покупать, при создании заказа в платёжном шлюзе вы будете, в добавок с сумме и валюте, передавать идентификатор пользователя и идентификатор связки. Дальше банк делает всю магию сам.

Так же банк предоставляет методы, для получения информации о связке, что бы вы могли отображать пользователю список привязанных карт (те самые звёздочки с четырьмя последними цифрами номера карты и дата истечения). Эту информацию вы можете у себя хранить.

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

36
Ответить

И да, ваш опыт ВЕСЬ состоит из российских реалий.
А теперь смотрим Африку, где терминал может получить любой Лугамба через блат и знакомых, смотрим США где про 3ds слышать не слышали, и опротестовывать операцию не самое приятное и легкое дело (и не всегда успешное).

Так что все еще НЕТ, не рекомендуется сохранять данные карт где попало.

6
Ответить

Использовать эти данные, что бы списать деньги в пользу третьего лица, нельзя.

Отчасти неверно.
История из моей практики - была забита карта на Wallmart в US.
В итоге ломанули (подобрали или взяли из слитой базы пароль) профиль и с неё купили ноутбук на вынос за 600$.
Хорошо, что wallmart просек фишку, и сам сделал отмену операции через сутки. Иначе бы какой нибудь счастливчик легко получил бы мой ноут.

С тех пор я стараюсь ни на одном сайте не сохранять данные своих карт.

3
Ответить

спасибо за подробное разъяснение) я карты специально не привязываю, но многие сайты сами их запоминают))

Ответить

супер!!! сделай это отдельной статьёй - думаю, будет очень популярна

Ответить

Это все конечно хорошо. Только откуда тогда берётся огромный рынок кардинга? Откуда-то же данные карт утекают. Не только с пластика же.
Там вон чел выше писал про виртуальные карты и лимиты. Все верно, лучше уж перебздеть чем недобздеть. А ещё лучше физичеких карт тоже несколько держать, и в банкоматы пихать только ту где лимиты установлены или просто на счету не большая сумма. Потому что могут быть скимеры или как там эта хрень называется которая данные карты с пластика читает 

Ответить

Спасибо

Ответить