Ответ
Основные виды атак на веб-приложения включают:
-
SQL-инъекция (SQL Injection) Внедрение вредоносного SQL-кода через поля ввода, что позволяет атакующему получить несанкционированный доступ к базе данных, изменять или удалять данные.
- Защита: Использование параметризованных запросов (prepared statements) или ORM.
-- Уязвимый код query = "SELECT * FROM users WHERE name = '" + userName + "';" -- Пример инъекции, если userName = "' OR 1=1 --" -
Межсайтовый скриптинг (XSS, Cross-Site Scripting) Внедрение вредоносного JavaScript-кода на страницу, который выполняется в браузере другого пользователя. Может использоваться для кражи сессионных cookie, редиректа на фишинговые сайты или изменения содержимого страницы.
- Защита: Экранирование (escaping) всего пользовательского вывода, использование заголовка
Content-Security-Policy(CSP).
- Защита: Экранирование (escaping) всего пользовательского вывода, использование заголовка
-
Межсайтовая подделка запроса (CSRF, Cross-Site Request Forgery) Атака, заставляющая браузер аутентифицированного пользователя выполнить нежелательное действие на сайте (например, сменить пароль, совершить перевод средств). Атакующий подготавливает специальную ссылку или форму на своем сайте.
- Защита: Использование анти-CSRF токенов для каждого запроса, изменяющего состояние.
-
Отказ в обслуживании (DoS/DDoS) Перегрузка сервера большим количеством запросов с целью сделать его недоступным для легитимных пользователей. DDoS-атака выполняется с множества устройств (ботнета).
- Защита: Ограничение количества запросов (rate limiting), использование CDN и специализированных сервисов защиты.
-
Человек посередине (MITM, Man-in-the-Middle) Атакующий перехватывает и, возможно, изменяет трафик между клиентом и сервером. Особенно опасно в незащищенных Wi-Fi сетях.
- Защита: Использование шифрования трафика с помощью протокола HTTPS (TLS/SSL).
Ответ 18+ 🔞
А, ну так, слушай, смотри, тут у нас целый зоопарк, блядь, как на веб-приложение наехать можно. Прям как в плохом районе после полуночи — со всех сторон подходят, хуй с винтом, и каждый со своим инструментом. Разбираем по косточкам, но с юморком.
Первое, классика жанра — SQL-инъекция. Это когда какой-нибудь распиздяй-разработчик строки тупо склеивает, а потом приходит злоумышленник и пишет в поле логина не "Вася", а ' OR 1=1 --. И всё, пиздец, твоя база данных ему как родная открывается, все пароли, все данные. Защита-то проще некуда, ёпта: используй подготовленные запросы (prepared statements) или ORM, и спи спокойно. Но нет же, лень-матушка.
-- Вот так НЕ НАДО, блядь, делать никогда!
query = "SELECT * FROM users WHERE name = '" + userName + "';"
-- А userName пусть будет "' OR 1=1 --". Всё, приехали.
Дальше — XSS, он же межсайтовый скриптинг. Это уже чистая психология, блядь. Внедряют вредоносный скрипт в твою же страницу, а он потом у какого-нибудь доверчивого юзера куки ворует или его на левый сайт уводит. Представь: читает чел новости, а в комментариях какой-то пидарас шерстяной <script>украсть_куки()</script> вставил. И понеслась. Защита? Экранируй всё, что пользователь вводит, как будто он тебе вирус в комп запустить хочет. И заголовок Content-Security-Policy в помощь — он скажет браузеру, откуда скрипты можно грузить, а откуда нет.
Потом идёт CSRF — межсайтовая подделка запроса. Вот это вообще хитрая жопа, блядь. Сидит пользователь, авторизовался в своём банке. А ему на другом сайте картинку подсовывают, которая тихонечко от его имени запрос на перевод всех денег на Кипр отправляет. И браузер-то куки подставляет, всё честно. Защита — анти-CSRF токены. К каждой форме, к каждому важному запросу прикладывай уникальный ключ, который со стороны подделать нереально. Без него — ни-ни.
А ещё есть DoS/DDoS — отказ в обслуживании. Тут уже не до хитростей, просто тупая сила, овердохуища запросов со всего интернета. Цель — положить сервак, чтобы легитимные пользователи получили ошибку вместо сайта. Защита — это уже уровень инфраструктуры: лимитирование запросов (rate limiting), чтобы с одного IP не больше N в секунду, CDN, чтобы трафик размазать, и спецсервисы, которые умеют отфильтровывать ботнет-мусор.
И на десерт — MITM, человек посередине. Это когда ты сидишь в кафешке на открытом Wi-Fi и думаешь, что всё ок. А какой-то мудень уже перехватил твой трафик и читает, что ты там в соцсетях пишешь, а то и пароли твои смотрит. Защита одна, но железная: HTTPS, ёбана! Чтобы между тобой и сервером был шифрованный TLS/SSL-туннель. Тогда хоть кто посередине сиди — увидит только абракадабру.
Вот такой вот невесёлый, блядь, справочник выживания в интернете. Главное — не быть распиздяем и думать головой, когда пишешь код. А то потом охуеешь от последствий.