Вопрос проверяет знание основных видов атак на фронтенде и методов защиты от них, что важно для обеспечения безопасности веб-приложений.
Фронтенд-разработчики должны понимать угрозы безопасности, чтобы защитить пользователей и данные. Наиболее распространенные атаки включают XSS, CSRF, Clickjacking, SQL-инъекции и атаки через зависимости.
XSS позволяет злоумышленнику внедрить вредоносный скрипт в веб-страницу, который выполняется в браузере жертвы. Это может привести к краже cookies, перенаправлению на фишинговые сайты или изменению содержимого страницы.
Защита:
textContent вместо innerHTML).// Пример экранирования в JavaScript
function escapeHTML(str) {
const div = document.createElement('div');
div.textContent = str;
return div.innerHTML;
}
const userInput = '<script>alert(1)</script>';
document.getElementById('output').innerHTML = escapeHTML(userInput);CSRF заставляет пользователя выполнить нежелательное действие на сайте, где он аутентифицирован. Например, злоумышленник может отправить запрос на смену пароля от имени жертвы.
Защита:
SameSite для cookies (например, SameSite=Strict).Origin или Referer.// Пример установки CSRF-токена в форме
<form action="/change-password" method="POST">
<input type="hidden" name="_csrf" value="{{csrfToken}}">
<input type="password" name="newPassword">
<button type="submit">Изменить пароль</button>
</form>Clickjacking скрывает целевой сайт под прозрачным слоем, заставляя пользователя кликать по невидимым элементам. Например, кнопка "Лайк" может быть скрыта под видимой кнопкой.
Защита:
X-Frame-Options: DENY или SAMEORIGIN.frame-ancestors.// Пример настройки заголовка в Express
app.use((req, res, next) => {
res.setHeader('X-Frame-Options', 'DENY');
next();
});Хотя SQL-инъекции чаще ассоциируются с бэкендом, фронтенд может быть точкой входа. Если пользовательский ввод напрямую вставляется в SQL-запрос, злоумышленник может выполнить произвольные команды.
Защита:
Использование устаревших или уязвимых библиотек (например, jQuery с известными XSS) может открыть путь для атак.
Защита:
Вывод: Защита фронтенда требует комплексного подхода: экранирование ввода, использование CSP, CSRF-токенов, заголовков безопасности и регулярное обновление зависимостей. Эти меры помогают предотвратить большинство распространенных атак и обеспечить безопасность пользователей.
Уровень
Рейтинг:
4
Сложность:
5
Навыки
JavaScript
HTML
Ключевые слова
Подпишись на React Developer в телеграм
Frontend developer
Ментор по Frontend
Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства
Записаться на консультацию