in ,

Как хакеры взламывают сайты. Отвечает программист

Привет, друзья. Сегодня я хочу рассказать вам о том, как у одной кампаний взломали сайт. Хозяин сайта понёс большие убытки, а большая часть программистов получила «премию» в виде увольнений. Название сайта не могу сказать, поймите правильно, это будет не корректно, по отношению к владельцу.

Формы на сайтах

Я думаю, что все хоть раз в своей жизни регистрировались на каком-нибудь сайте. Эти окошки, куда мы вводим данные, а потом нажимаем кнопку отправить/зарегистрироваться/войти (может быть любое название у кнопок), они называются формы.

Например, форма для ввода логина и пароля. Или форма для оплаты в интернет-магазине.

Когда пользователь заполнил данные и нажал кнопку отправить, то эти данные нужно проверить, потом занести в базу, а потом уже показать пользователю что-то на экране. На самом деле в коде это происходит за доли секунды.

Простой пример

Вот представьте, что есть три коробки. Каждая из них подписана. В одну коробку мы положили яблоки и на ней написано — яблоки. В другую положили игрушки и на ней написано — игрушки. В последнюю положили хлеб и на ней написано — чай. И отправили их мне.

Я, программист, получил ваши коробки и начинаю их проверять. Смотрю, что на них написано и сравниваю с тем, что в них лежит. Если, что-то не сходится я отправлю вам их обратно. Чтобы вы могли положить в них правильный предмет.

Если всё нормально, то дальше я проверяю, чтобы яблоки были не испорчены. В общем, я буду отсылать вам эти коробки обратно, пока вы наконец-то не положите в них то, что нужно.

Так как это всё происходит к коде, я должен учесть все возможные варианты. Чтобы какой-нибудь пользователь не отправил то, что может навредить сайту. Или взломать его.

Как взломали сайт

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

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

Программист, который писал проверку для этой коробки не учёл, что нужно проверять не только, что в ней деньги. А ещё и количество этих денег.

В итоге получилось, что около двух недель некоторые покупатели брали любые товары за 1 цент. Владелец понёс огромные убытки.

Взломать сайт, это не значит, что кто-то с монтировкой лупит по экрану компьютера. Или сидит в капюшоне и что-то строчит на экране своего ноутбука.

Взломать сайт, это когда находят способ положить в эти коробки, о которых я писал выше, неправильные данные. Вот и всё.

Кто виноват

Виноваты все. Программист, который безответственно подошёл к своему заданию. Тестировщики, которые плохо протестировали. Служба безопасности, которая не заметила в отчётах падение прибыли.

Вообще, сайты всегда взламывают из-за вот таких вот глупых ошибок. Я могу сказать, что нет сайта, который нельзя взломать. Всегда есть какая-то скрытая ошибка, о которой просто ещё никто не знает.

Крупные компании даже выплачивают огромные премии любому, кто найдёт такие ошибки.

Читать и комментировать в Яндекс Дзен.

Что делать, если закончилось место на компьютере, а удалить нечего. Отвечает программист

Как проходит рабочий день фрилансера. Отвечает программист