Кто виноват и как с этим бороться: о безопасности веб-приложений | OTUS

Курсы

Программирование
Microservice Architecture
-5%
React.js Developer
-4%
C++ Developer. Professional
-5%
Scala-разработчик
-8%
Backend-разработчик на PHP
-9%
Алгоритмы и структуры данных
-9%
Python Developer. Basic
-12%
Golang Developer. Professional
-5%
HTML/CSS
-11%
C# ASP.NET Core разработчик
-5%
Kotlin Backend Developer
-8%
iOS Developer. Professional
-8%
Java Developer. Professional Web-разработчик на Python MS SQL Server Developer Android Developer. Basic Разработчик программных роботов (RPA) на базе UiPath и PIX Highload Architect Reverse-Engineering. Professional Vue.js разработчик Node.js Developer Интенсив «Оптимизация в Java» Супер-практикум по использованию и настройке GIT Symfony Framework Java Developer. Basic Unity Game Developer. Professional Супер-интенсив Azure
Инфраструктура
Microservice Architecture
-5%
Экспресс-курс «IaC Ansible»
-10%
Administrator Linux.Basic
-10%
Мониторинг и логирование: Zabbix, Prometheus, ELK
-10%
Экспресс-курс «CI/CD или Непрерывная поставка с Docker и Kubernetes»
-30%
Administrator Linux. Professional
-6%
Экcпресс-курс «ELK»
-10%
Экспресс-курс по управлению миграциями (DBVC)
-10%
Базы данных Network engineer Разработчик программных роботов (RPA) на базе UiPath и PIX Highload Architect Разработчик голосовых ассистентов и чат-ботов VOIP инженер Супер-практикум по работе с протоколом BGP Супер - интенсив по паттернам проектирования Супер - интенсив по Kubernetes Супер-интенсив "Tarantool"
Специализации Курсы в разработке Подготовительные курсы
+7 499 938-92-02

Кто виноват и как с этим бороться: о безопасности веб-приложений

PHP_Deep_LAST_10.07_2_Site.png

Все слышали о SQL-инъекциях, XSS, DoS, DDoS. Кто-то уходил дальше и рассказывал о других методах код-инклудинга, сниффинга, брутфорсинга. И только один из десяти кандидатов на собеседовании может полностью описать последствия удачно осуществлённой SQL-инъекции. Но самое неприятное, что практически все абсолютно уверены, что фильтрация всех получаемых от пользователя данных гарантирует отсутствие уязвимостей в коде.

Возможно, именно эта уверенность на сегодняшний день играет на руку злоумышленникам. Хотя бы потому, что фильтрация данных никак не позволит защититься от того, что конкуренты сольют базу данных ваших пользователей, просто прогоняя купленную по дешевке базу данных email’ов в форму восстановления пароля в случае, когда приложение отвечает, что данный email не зарегистрирован.

А как насчёт реализованной таким «кустарём» биллинговой системы, в которой в качестве ID-транзакций используется простой инкремент? Такая ошибка, как минимум, позволяет выяснить реальный месячный оборот компании.

Вам кажется, это не так серьезно?

Хорошо, можете ли вы поручиться, что в тех.поддержке смогут распознать мошенника, который, просто предугадав номер транзакции, потребует вернуть ему деньги на карту?

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

А ещё никакая фильтрация данных не спасёт вас, если перед сезонными распродажами (black friday, etc) конкуренты просто сольют ваш бюджет, выделенный на SMS-подтверждения при регистрации пользователей.

Ну и напоследок

Большинство сайтов, написанных начинающими программистами, легко «положить»: просто всем офисом дружно зажмите «F5» на странице с чувствительной к изменениям информацией типа добавления товара в корзину или checkout-корзины.

Вывод

Если вы планируете развиваться в области веб-разработки, не стоит формально подходить к вопросу о защите приложений. Не останавливайтесь в изучении этого вопроса на уровне «просто фильтруй все входные данные». А разберитесь во всех известных способах атак. И, самое главное, помните, какие цели преследуют злоумышленники, чтобы грамотно продумать стратегию защиты.

Есть вопрос? Напишите в комментариях!

Не пропустите новые полезные статьи!

Спасибо за подписку!

Мы отправили вам письмо для подтверждения вашего email.
С уважением, OTUS!

Автор
0 комментариев
Для комментирования необходимо авторизоваться