Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

Документы

Медиа

Назад
Вопрос про JavaScript: xss, csrf, инъекции sql, security, basic

Какие распространенные уязвимости существуют в JavaScript-приложениях и как их предотвращать?

Этот вопрос проверяет знания о безопасности веб-приложений и распространенных уязвимостях, связанных с JavaScript. Понимание этих уязвимостей важно для разработки безопасных приложений.

Короткий ответ

Распространенные уязвимости в JavaScript-приложениях включают XSS (межсайтовый скриптинг), CSRF (межсайтовая подделка запросов) и инъекции SQL. Для предотвращения XSS важно очищать и экранировать пользовательский ввод, а для защиты от CSRF — использовать токены и заголовки. Кроме того, следует применять параметры для запросов к базе данных, чтобы избежать SQL-инъекций. Понимание и применение этих мер безопасности помогает защитить приложения от атак.

Длинный ответ

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

Вот некоторые из наиболее распространенных уязвимостей и способы их предотвращения:

  • XSS (межсайтовый скриптинг):

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

    Как предотвратить: Используйте функции экранирования для очистки данных перед их выводом на страницу. Также стоит применять CSP (Content Security Policy), который помогает ограничить выполнение скриптов.

    // Пример экранирования 
    function escapeHtml(unsafe) {
    	return unsafe        
    		.replace(/&/g, "&")        
    		.replace(/</g, "&lt;")        
    		.replace(/>/g, "&gt;")        
    		.replace(/"/g, "&quot;")        
    		.replace(/'/g, "&#039;"); 
    }
  • CSRF (межсайтовая подделка запросов):

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

    Как предотвратить: Используйте уникальные токены, которые должны быть включены в каждый запрос на изменение состояния (POST, PUT, DELETE). Также применяйте заголовки, такие как SameSite, для куки.

  • SQL-инъекции:

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

    Как предотвратить: Используйте подготовленные выражения или ORM (Object-Relational Mapping), чтобы избежать инъекций. Всегда проверяйте и очищайте пользовательский ввод.

    // Пример использования подготовленного выражения 
    const query = 'SELECT * FROM users WHERE username = ?'; 
    db.query(query, [username], (err, results) => {
    	// обработка результатов 
    });
  • Ошибки аутентификации и управления сессиями:

    Уязвимости в механизмах аутентификации могут привести к несанкционированному доступу к данным пользователей.

    Как предотвратить: Используйте безопасные методы для хранения паролей (например, bcrypt) и реализуйте многофакторную аутентификацию.

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

Уровень

  • Рейтинг:

    3

  • Сложность:

    8

Навыки

  • JavaScript

    JavaScript

Ключевые слова

#xss

#csrf

#инъекции sql

#security

#basic

Подпишись на React Developer в телеграм