Verified by Visa и SSL — не панацея

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





    Обращаю внимание на знакомое имя банка, на https в строке адреса, на логотип «Verified by Visa» (да, это всего лишь название дополнительной меры безопасности, но все-таки «проверено Визой»). Можно ли доверить этому сайту номер карты и CVV2? Похоже, что да.

    Заполняю все поля формы, жму «оплатить»… вижу белую страницу со строкой текста.
    Could not insert: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'ya Ivanov', '', '0', '','127.0.0.1', 'https://web3ds.bank-name.ru:3443/cgi-bi' at line 1


    Замечательно. О чем думал сотрудник банка, оформляющий мне карту, когда вбивал ненужный апостроф в поле «Card Holder's Name». И о чем думал программист, подставляющий в SQL-запрос данные, переданные пользователем, без экранирования (похоже, что не о SQL-инъекциях).

    Я вспомнил о комиксе xkcd, закрыл страницу, оделся, вышел на улицу и пошагал до ближайшего терминала QIWI.

    image

    P. S. Никогда не просите своих пользователей вводить что-то «без пробелов». Проще разработчику один раз написать регулярное выражение для обработки входных данных, чем каждому пользователю читать и осмысливать подписи под полями.
    Ads
    AdBlock has stolen the banner, but banners are not teeth — they will be back

    More

    Comments 97

      +3
      Сотрудник банка мог и не знать что апостроф нельзя вписывать, это програмер должен был проверять ещё на этапе внесения, а потом на этапе проверки карты
      +2
      Хороший надёжный банк, нечего сказать…

      PS: а что это вы лого замазали, а ссылка в ошибке оригинальная осталась ;)
        +1
        Спасибо, не заметил. Уже заменил.
          0
          Ну лого-то частично скрыто и осталось вполне узнаваемым. По-моему, так было задумано.
            0
            дайте пожалуйста ссылку на каталог логотипов банков: хочу узнать что это за банк
              0
              image
                0
                спасибо, никогда о нем не слышал в нашей «деревне»
                  0
                  в знак «глугой водитель» вписаны какие-то враждебные МБ
              +14
              Осталось дождаться сообщения типа:
              Если вы увидите ошибку, начинающуюся на «You have an error in your SQL syntax...», пожалуйста, вернитесь на шаг назад и удалите кавычки из полей ввода.
              под картинкой «Verified by Visa».
                +1
                А какой смысл что-то удалять кавычки, если после этого карта не пройдет верификацию? Не просто же так просят имя указывать. :)
                  +4
                  предыдущий автор был не прав, нужно сообщение: замените апостров на двойной! и не пробуйте использовать никаких sql инъекций.
                    0
                    У меня две карты, на одной написано имя ALEXANDER, на другой ALEXANDR (не трудно догадаться, какая из них делалась в России), так вот, я забыл, что на одной карте имя написано без буквы E, и написал с буквой E — прокатило.
                      +4
                      По секрету: процессингу вообще плевать на это поле. Можете туда что угодно вписывать. Иногда это поле учитывают в антифродовых механизмах, и то, с небольшим весом. Видел транзакции, где по карте шёл фрод от кардхолдера с именами «а вот.уй вам», «как я вас поимел» и так далее в том же духе!
                        0
                        Обычно лениво кодить с авторизацией по биллинг адресу, телефону, кард холдеру и cvc. Это да :)
                          0
                          Плевать при блокировке средств. А вот при списании банк сам может проверить
                        0
                        Имя, как правило, при верификации не учитывается.
                          0
                          большей части банков наплевать на содержимое поля CardHolder Name
                        –2
                        хм, помоему поле с которым возникли проблемы несущественно. часто его просят просто для галочки, чтоб было.

                        про всякие «верифаед бай..», не будьте таким наивным — виза ни сном ни духом про этот сервис/страницу не знает, просто скапали гдето картинку вставили себе и вуаля.

                        ЗЫ мне тут расказывали мои братья по прогцеху. вобщем работали они раньше в альфабанке, и был с ними товарищ, так вот этот товарищ, пока в тз небыло четкой формулировке, что и как должно работать, просто хардкодил те функции. а так как он все задачи сдавал вовремя, то и претензий к нему небыло, ну и не рефакторил его код пока никто, а потом он получил повышение и сам должен был рефакторить…
                        вобщем после этой вакханалии много было мата сказано…
                          +6
                          Вообще-то у всех кредитных карт существуют договора и правила по поводу «вставить картинку» и тем более по поводу хранения данных. Например, CVC код хранить в базе нельзя. За нарушения они штрафуют и могут отказать в сервисе вообще. Нам специальные курсы устраивали в свое время (в штатах было), правда, давно это было.
                            +1
                            Да да, такого рода организации должны соблюдать PCI DSS
                              +1
                              По секрету, в pci dss возможно не полное соответствие стандарту, а частичное. Получить замечания и action plan, типа работаем над устранением. Однако с сентября 2010 года Visa требует полное соответствие, иначе будут штрафы. Но мне почему-то кажется что банкам проще будет их платить, поскольку полное соответствие ofi dss дорого и не так просто. В случае полного соответствия такого рода ошибок не должно быть.
                          +1
                          И это безопасность банка? Шокирован такой безопасностью.
                            0
                            В банках работают такие же люди, как везде.
                              0
                              там должны быть другие процессы
                                0
                                Если там такие же люди, откуда возьмутся другие процессы?..

                                Ну да, кое-что навязывается извне — СТО БР ИББС, PCI DSS и прочее. Но глобально это ничего не меняет.
                            0
                            неповезло вам с этой картой :)
                            а это единственный случай таких косяков?
                              0
                              я бы комикс в КДПВ поставил :)
                                0
                                Oh yes, Little Bobby Tables. We call him.
                                0
                                А какие данные они сохраняют, в БД, интересно? У вас теперь доступ есть, посмотреть можно )
                                  0
                                  никакие номера карт и cvc коды не сохраняются =)
                                  +1
                                  — Здравствуйте! Разрешите предложить Вам наш новый «карточный продукт»… блаблабла… бонусные баллы… блаблабла… скидки… блаблабла… крупнейшие отели… блаблабла… только вот на сайтах надо будет вводить без пробелов и апострофов…
                                  — До свидания!
                                    +8
                                    Или так:
                                    — До свидания! Кстати, я не представился. Д'Артаньян!
                                    –3
                                    Если уж замазываете логотип, то замазывайте до конца, — банк определяется с первого взгляда на незакрашенный кусок.
                                      +4
                                      Я думаю что в этом и был смысл неполного закрашивания ;)
                                      0
                                      Против глупости боги бороться бессильны.
                                        +1
                                        Оффтоп
                                        У Utel (УралСвязьИнформ) тоже есть возможность вносить платежи с помощью банковских карты. Но, зайдя в кабинет на сайте провайдера, указав сумму платежа, открывается страница процессинга. Если интернет не оплачен, то все. Платеж не совершить. Вот такая мелкая пакость (возможно уже устранили)
                                          0
                                          Да и у Билайна какая же штука.
                                            0
                                            У билайна (по крайней мере, корбины) можно воспользоваться гостевым доступом, и тогда сервер посредника по оплате будет доступен.
                                              0
                                              Не нашёл что-то как по проводу получить гостевой доступ, но если надо менять логин/пароль — тоже не вариант, у меня прописано всё в роутере, лень менять. Пользуюсь клиентом альфа банка через edge/gprs, если забываю в срок.
                                                0
                                                Да, менять придётся. corbina corbina.
                                            0
                                            У скайлинка похоже: доступ к процессингу с нулевым балансом есть, но по MasterCard SecureCode на сайт банка не пускает. Поддержка после месяца раздумий ответила что-то вроде «используйте карту без SecureCode».
                                            –4
                                            Скорее всего эту ошибку выдает сайт мерчанта а не сайт банка. Кроме того мерчантам запрещено сохранять информацию такую как номер карты и другие ее реквизиты (исключение составляет четыре последние цифры номера карты). Так что даже если эти данные будут украдены — пользы от этого никакой.
                                              +3
                                              Автор, надеюсь, это не ваш CVC2 засвечен в топике :-)
                                              0
                                              Интересно, как у вашего провайдера будет осуществляться оплата заблокированного интернета при условии поддержки картой VbV? При заблокированном аккаунте можно выпустить клиента в собственную сеть (личный кабинет), в подсеть банка-эквайера (платежный шлюз). Но если карта поддерживает VbV или MC SC, то процессинг переадресует держателя карты на специальную страницу на сайте банка-эмитента карты, а туда провайдер неблокируемого доступа может и не предоставить… Не включать же в список сайты всех банков?
                                                0
                                                Продвинутых провайдеры включают сайты банков-эмитентов. Поддерживающих эмиссию с 3ds в России не много, может быть 10 банков.
                                                +1
                                                Verified by Visa не означает что банк «прошел проверку в Visa», это означает что авторизация транзакций проводится с использованием 3D-secure.Печально что такая ошибка возникает и нет проверки. Не уверен что здесь возможен SQL-injection, проверить нет желания, ибо могут расценить как попытку взлома, пусть даже в благих целях. Завтра напишу в процессинг банка, пусть правят.
                                                  0
                                                  Я понимаю, что «Verified by Visa» — это технология (дополнительная защита паролем), но переводится фраза однозначно (далеко не каждый, глядя на логотип, понимает, о чем на самом деле идет речь). В службу поддержки (адрес указан на странице) я написал в первую очередь.
                                                  –4
                                                  Если на картинке ваш реальный номер карточки и реальный код безопасности — ждите неожиданных транзакций
                                                    +6
                                                    Вы правла думаете, что автор такой идиот?
                                                    0
                                                    Особенно master card secure code — 3ds в мастер карде
                                                      +2
                                                      Я так понимаю, номер карты и CVC2 фиктивные?
                                                        0
                                                        Судя по тому что сейчас их не видно и не понятно о чем вы — были валидные :)
                                                          0
                                                          Ой я глупый, думал вы в логах увидели их увидели. Впредь буду внимательнее.
                                                          0
                                                          Зачем «понимать», если можно просто подсчитать контрольную сумму на номере карты.

                                                          Нет, не валидные :)
                                                            0
                                                            Что за контрольная сумма? Расскажите, пожалуйста.
                                                              +3
                                                              Номера платёжных пластиковых карт формируются особым образом.
                                                              Первая цифра указывает платёжную систему:
                                                              3 — American Express
                                                              4 — VISA
                                                              5 — MasterCard
                                                              6 — Maestro
                                                              Далее номер, указывающий конкретный банк, уникальный идентификатор карты внутри этого банка и т.д.

                                                              И последняя цифра номера карты — это контрольная сумма, т.е. эта цифра получается по особому заранее известному алгоритму из всех предыдущих цифр номера карты. Используется это для проверки правильности ввода. Т.е. в системах, где требуется ручной ввод номера карты (например, в платёжных системах в интернет-магазинах) можно сразу при вводе посчитать контрольную сумму введённого номера по известному алгоритму и сравнить с последней цифрой номера. Если совпало — номер введён верно, если не совпало, то значит пользователь в какой-то цифре при вводе ошибся, тогда ему выводится соответствующее уведомление, чтобы он перепроверил и исправил введённый номер ещё до отправки его в платёжную систему.
                                                                +2
                                                                Алгоритмы с контрольным числом, которое помещается в сам номер, используются во многих местах: Банковские арты, ИНН, ОКПО, штрих-коды, номер пенсионного страхования, социальная карта, идентификатор ценных бумаг и др.
                                                                ru.wikipedia.org/wiki/Контрольное_число
                                                                  0
                                                                  Спасибо, очень интересно
                                                            0
                                                            Имя вписываемое в holder's name вообще-то должны были предоставить для проверки в форме и потом еще просят проверить при выдаче карты… ну по крайней мере в нормальных банках.

                                                            Программисты они такие бывают. После «без пробелов», можно ожидать все что угодно :)

                                                            Ну и напоследок, данные о совершенной транзакции надо куда-то фиксировать. Номер карты или CVV2 конечно нехорошо созранять, но почему бы не сохранить и фамилию плательщика.
                                                              0
                                                              1) Введите имя без апострофа, по-идее банк не проверяет эту информацию.
                                                              2) Verified by Visa подразумевает редирект на сайт вашего банка, где вы будете должны подтвердить транзакцию. Банк, естественно, должен поддерживать соответствиующий протокол, 3D Secure.
                                                                0
                                                                2) VbV не всегда подразумевает редирект на сайт банка и ввод пароля. Карта может быть not involved, что значит «3DS поддерживается, но пароль не нужен».
                                                                0
                                                                Знаю я этого провайдера, сам на нём сижу. У них ещё и в инструкции к оплате через личный кабинет Qiwi неправильная информация и неправильный скриншот (там говорится нажать Оплатить, хотя на скриншоте такой кнопки вообще нет). Вообще, у них почти вся последовательность оплаты неправильна (либо неполная), вот и получается, что обычный пользователь попробует, плюнет и решит в будущем (и сейчас) платить через терминал. Так что вот такие пироги…
                                                                  0
                                                                  А я имя держателя никогда не заполняю.(у меня интернет карта, на де факто виртуальна, и имя держателя на ней отсутствует, хотя теоретически там такое же как на других моих картах) Пока что все транзакции проходят.
                                                                    0
                                                                    вроде обычно это обязательное для заполнения поле )
                                                                      0
                                                                      Нет, на многих сайтах использовал оплату через подобную схему(3d-secure и verified by visa) и нигде ни разу не было ошибки. Украинские, российские банки, paypal и др все отлично проходило.
                                                                      Может потому что у меня у карточки это поле пустое в самой системе. Я же указал что она виртуальная, у меня от нее есть только номер,cvv и срок действия.
                                                                        0
                                                                        Самим биллингом это поле обычно не проверяется (как и адрес в случае России), но это не значит что его не нужно заполнять )
                                                                        Поле называется cardholder name и туда вводится имя держателя карты, независимо от того есть оно на карте или нет )
                                                                          0
                                                                          Я просто хотел сказать, что не заполнение этого поля к проблемам у меня еще не приводило.
                                                                          Естественно это не доказательство того что они не могут вдруг всплыть.
                                                                          Так поделился опытом.
                                                                    0
                                                                    >Без пробелов
                                                                    функции trim(), ctype_digit() и strlen() видать не для этих суровых программистов, да…
                                                                      +9
                                                                      У всех имя как имя, один вы Д'Артаньян.
                                                                        0
                                                                        Ждем поста «Терминалы QIWI — не панацея»
                                                                          0
                                                                          А почему нельзя назвать имена, чтобы народ знал «героев»? Чтобы поиск в Яндексе и Гугле ссылку на эту статью в топ-10.
                                                                          • UFO just landed and posted this here
                                                                            +1
                                                                            «Мастер-баааааанк» — сеть стоматолооогий
                                                                            Ноооомер наааш едииииииин…
                                                                              0
                                                                              До публикации статьи я отправил e-mail в службу тех. поддержки банка. Только что получил довольно забавный ответ. Стоит ли его публиковать или это нарушит правила переписки?
                                                                                +1
                                                                                Если своими словами, то сотрудник банка не верит, что имя на карте указано с апострофом, и рекомендует мне пропустить его при заполнении соответствующего поля.
                                                                                  +1
                                                                                  Предложите ему пари )))
                                                                                    0
                                                                                    Ох-ё!!! Я так сразу и подумал, что хотфиксом будет инструкция «Вводите имя без апострофов» и не факт что будет дальнейший фикс.
                                                                                    +1
                                                                                    Ничего это не нарушит.
                                                                                    Если бы обе стороны переписки были частными лицами, то это была бы личная переписка, для обнародования которой нужно согласие обеих сторон.
                                                                                    А в данном случае частное лицо только вы, а на той стороне официальное лицо, представляющее банк, поэтому для опубликования достаточно только вашего желания.
                                                                                    +1
                                                                                    Смотрю я на такие формы и ужасаюсь — почему её нельзя сделать похоже на карту? Неужели у банков нет денег на специалистов по юзабилити?

                                                                                    В данном случае, срок действия: на карте он написан в формате ММ/ГГ, в форме месяц указан прописью, а год в формате ГГГГ.
                                                                                    С CVC2/CVV2 тоже косяк — зачем-то просят указать о его наличии и просят ввести перед именем, хотя на большинстве карт он расположен сзади.
                                                                                    В некоторых формах требуют указывать ПС карты, вместо того, чтобы определить её по номеру.
                                                                                      +4
                                                                                      Опеределить не проблема, такой выбор успокаивает кастомера.
                                                                                      А пример формы — пожалуйста.

                                                                                      0
                                                                                      А зачем было идти до автомата QIWI, когда сама система QIWI позволяет оплачивать услуги с карты? И у них таких косяков нет.
                                                                                        0
                                                                                        Потому что интернет был отключен, а сайт QIWI не добавлен провайдером в специальную зону свободного доступа.
                                                                                          0
                                                                                          Ясно. У нас добавлен.
                                                                                          Можно ещё киви-клиент для мобильника использовать, тоже очень удобно.
                                                                                          0
                                                                                          Наверное потому что интернет не оплачен?
                                                                                            +1
                                                                                            Я буду обновлять комментарии… Я буду обновлять комментарии… Я буду обновлять комментарии…
                                                                                            Я буду обновлять комментарии… Я буду обновлять комментарии… Я буду обновлять комментарии…
                                                                                            Я буду обновлять комментарии… Я буду обновлять комментарии… Я буду обновлять комментарии…
                                                                                              0
                                                                                              Некоторые провайдеры делают в личном кабинете «доверенный платёж», т.е. авансом продлевают интернет, и ты в течение 3-х суток должен оплатить его.
                                                                                              Это удобно. Даже если забыл вовремя оплатить, включаешь доверенный платёж и уже через 5 минут гасишь его через интернет-банк, к которому получил доступ через авансом включенный инет.
                                                                                                0
                                                                                                Спасибо, Кэп. Сам таким пользуюсь.

                                                                                                А ТС, судя по содержанию посту — нет.
                                                                                            0
                                                                                            Я на эти Verified by Visa/MC регистрировался вообще исключительно с матом и по телефону со службой поддержки. Но работают вроде пристойно.
                                                                                              0
                                                                                              Интересно, сколько «хакеров» уже обломалось при попытке оплатить что-нибудь онлайн по указанным в скриншоте реквизитам, в порыве «омгхялява!!!1»? :)
                                                                                                +1
                                                                                                номер сильно красивый…
                                                                                                было дело — коллеге пришла смс о том что он выиграл 100500 млн. итальянских долларов. вот только купите ваучер пополнения на киевстар и перезвоните и продиктуйте код пополнения.
                                                                                                ну начал диктовать:
                                                                                                двенадцать, тридцать четыре, пятьдесят шесть… бросили трубку с той стороны.
                                                                                                –1
                                                                                                это поле не проверяется
                                                                                                • UFO just landed and posted this here
                                                                                                    0
                                                                                                    У Google в одной из формочек такая же уязвимость была, писал им — забили :( печаль

                                                                                                    Only users with full accounts can post comments. Log in, please.