> Как защититься от SQL инъекции (JavaScript)
Уровень: senior · Роль: frontend · Язык: JavaScript · Категория: Технические вопросы
Компании: ESoft
Стек: Node.js, JavaScript, Java
> Пример ответа
На фронтенде напрямую от SQL-инъекций защититься нельзя, так как SQL-запросы выполняются на сервере. Однако фронтенд-разработчик может минимизировать риски:
-
Валидация и санитизация данных на клиенте - перед отправкой на сервер проверяйте типы, длины и форматы (например, через регулярные выражения). Используйте библиотеки вроде
validator.jsдля Node.js. -
Экранирование ввода - если данные отображаются в UI, экранируйте их (например, через
textContentвместоinnerHTML), чтобы избежать XSS, который может быть использован для косвенной атаки. -
Использование параметризованных запросов на сервере - на Node.js с
mysql2илиpgприменяйте плейсхолдеры (?или$1). Пример:JAVASCRIPTconst query = 'SELECT * FROM users WHERE id = ?';connection.execute(query, [userId], (err, results) => { ... }); -
Ограничение привилегий БД - на сервере используйте отдельного пользователя с минимальными правами (только SELECT, INSERT и т.д.).
-
Никогда не доверяйте клиенту - все проверки дублируйте на сервере (Java или Node.js). Фронтенд - лишь первый рубеж.
-
Использование ORM - в Node.js (Sequelize, TypeORM) или Java (Hibernate) они автоматически экранируют параметры.
Главное правило: никогда не конкатенируйте пользовательский ввод в SQL-строку.
> Похожие задачи по JavaScript
Для чего используется хук useCallback в React
Почему нужно соблюдать порядок вызова хуков в React?
В чем разница между WHERE и HAVING в SQL и зачем использовать HAVING после GROUP BY?
Как вы относитесь к удаленной работе и переходу в офис
> Похожие задачи по frontend
Для чего используется хук useCallback в React
Почему нужно соблюдать порядок вызова хуков в React?
В чем разница между WHERE и HAVING в SQL и зачем использовать HAVING после GROUP BY?
Как вы относитесь к удаленной работе и переходу в офис
> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?
Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью