0 added
0 removed
Original
2026-01-01
Modified
2026-03-10
1
<p>Теги: php, инициализация переменных, безопасность веб-приложений, sql-инъекции, xss, dos, ddos, биллинговая система, фильтрация входных данных</p>
1
<p>Теги: php, инициализация переменных, безопасность веб-приложений, sql-инъекции, xss, dos, ddos, биллинговая система, фильтрация входных данных</p>
2
<p>Все слышали о SQL-инъекциях, XSS, DoS, DDoS. Кто-то уходил дальше и рассказывал о других методах код-инклудинга, сниффинга, брутфорсинга. И только один из десяти кандидатов на собеседовании может полностью описать последствия удачно осуществлённой SQL-инъекции. Но самое неприятное, что практически все абсолютно уверены, что фильтрация всех получаемых от пользователя данных гарантирует отсутствие уязвимостей в коде.</p>
2
<p>Все слышали о SQL-инъекциях, XSS, DoS, DDoS. Кто-то уходил дальше и рассказывал о других методах код-инклудинга, сниффинга, брутфорсинга. И только один из десяти кандидатов на собеседовании может полностью описать последствия удачно осуществлённой SQL-инъекции. Но самое неприятное, что практически все абсолютно уверены, что фильтрация всех получаемых от пользователя данных гарантирует отсутствие уязвимостей в коде.</p>
3
<p>Возможно, именно эта уверенность на сегодняшний день играет на руку злоумышленникам. Хотя бы потому, что фильтрация данных никак не позволит защититься от того, что конкуренты сольют базу данных ваших пользователей, просто прогоняя купленную по дешевке базу данных email’ов в форму восстановления пароля в случае, когда приложение отвечает, что данный email не зарегистрирован.</p>
3
<p>Возможно, именно эта уверенность на сегодняшний день играет на руку злоумышленникам. Хотя бы потому, что фильтрация данных никак не позволит защититься от того, что конкуренты сольют базу данных ваших пользователей, просто прогоняя купленную по дешевке базу данных email’ов в форму восстановления пароля в случае, когда приложение отвечает, что данный email не зарегистрирован.</p>
4
<p>А как насчёт реализованной таким "кустарём" биллинговой системы, в которой в качестве ID-транзакций используется простой инкремент? Такая ошибка, как минимум, позволяет выяснить реальный месячный оборот компании.</p>
4
<p>А как насчёт реализованной таким "кустарём" биллинговой системы, в которой в качестве ID-транзакций используется простой инкремент? Такая ошибка, как минимум, позволяет выяснить реальный месячный оборот компании.</p>
5
<h2>Вам кажется, это не так серьезно?</h2>
5
<h2>Вам кажется, это не так серьезно?</h2>
6
<p>Хорошо, можете ли вы поручиться, что в тех.поддержке смогут распознать мошенника, который, просто предугадав номер транзакции, потребует вернуть ему деньги на карту?</p>
6
<p>Хорошо, можете ли вы поручиться, что в тех.поддержке смогут распознать мошенника, который, просто предугадав номер транзакции, потребует вернуть ему деньги на карту?</p>
7
<p>Или ещё пример, когда одна известная компания потеряла около 200 000$ из-за небрежности, допущенной ведущим программистом при инициализации переменных. При этом ни автоматизированные тесты, ни ручные тесты не смогли отловить эту ошибку.</p>
7
<p>Или ещё пример, когда одна известная компания потеряла около 200 000$ из-за небрежности, допущенной ведущим программистом при инициализации переменных. При этом ни автоматизированные тесты, ни ручные тесты не смогли отловить эту ошибку.</p>
8
<p>А ещё никакая фильтрация данных не спасёт вас, если перед сезонными распродажами (black friday, etc) конкуренты просто сольют ваш бюджет, выделенный на SMS-подтверждения при регистрации пользователей.</p>
8
<p>А ещё никакая фильтрация данных не спасёт вас, если перед сезонными распродажами (black friday, etc) конкуренты просто сольют ваш бюджет, выделенный на SMS-подтверждения при регистрации пользователей.</p>
9
<h2>Ну и напоследок</h2>
9
<h2>Ну и напоследок</h2>
10
<p>Большинство сайтов, написанных начинающими программистами, легко "положить": просто всем офисом дружно зажмите "F5" на странице с чувствительной к изменениям информацией типа добавления товара в корзину или checkout-корзины.</p>
10
<p>Большинство сайтов, написанных начинающими программистами, легко "положить": просто всем офисом дружно зажмите "F5" на странице с чувствительной к изменениям информацией типа добавления товара в корзину или checkout-корзины.</p>
11
<h2>Вывод</h2>
11
<h2>Вывод</h2>
12
<p>Если вы планируете развиваться в области веб-разработки, не стоит формально подходить к вопросу о защите приложений. Не останавливайтесь в изучении этого вопроса на уровне "просто фильтруй все входные данные". А разберитесь во всех известных способах атак. И, самое главное, помните, какие цели преследуют злоумышленники, чтобы грамотно продумать стратегию защиты.</p>
12
<p>Если вы планируете развиваться в области веб-разработки, не стоит формально подходить к вопросу о защите приложений. Не останавливайтесь в изучении этого вопроса на уровне "просто фильтруй все входные данные". А разберитесь во всех известных способах атак. И, самое главное, помните, какие цели преследуют злоумышленники, чтобы грамотно продумать стратегию защиты.</p>
13
<p><em>Есть вопрос? Напишите в комментариях!</em></p>
13
<p><em>Есть вопрос? Напишите в комментариях!</em></p>
14
14