Pull to refresh

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

Reading time1 min
Views3.6K
Две недели был на море, только сегодня под вечер вернулся домой (вымотанный длительным перелетом). Звонит знакомый и просит срочно отправить ему документы по почте. Интернет не оплачен, до ближайшего терминала 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. Никогда не просите своих пользователей вводить что-то «без пробелов». Проще разработчику один раз написать регулярное выражение для обработки входных данных, чем каждому пользователю читать и осмысливать подписи под полями.
Tags:
Hubs:
+79
Comments97

Articles