Разработчик Нитин Ранганатх поделился пятью лучшими, по его мнению, npm-пакетами для защиты от распространенных атак. С их помощью можно за несколько простых действий сделать приложение на Node.js + Express.js безопаснее. Все, что нужно сделать, это просто установить их и использовать в качестве промежуточного программного обеспечения (ПО).
Что делает: представляет собой набор функций промежуточной обработки (middleware), устанавливающий определенные HTTP-заголовки для обеспечения безопасности.
От чего защищает: нейтрализует атаки межсайтового скриптинга, инъекционные, MIME сниффинга и целевые атаки на Express-серверы путем отключения заголовка X-Powerd-By.
Как использовать:
npm install helmet
const app = require('express')();
const helmet = require('helmet');
// Using helmet middleware
app.use(helmet());
app.listen(1337); Что делает: очищает пользовательский ввод, поступающий из тела запроса POST (req.body), GET-запроса (req.query) и параметров URL (req.params).
От чего защищает: от межсайтового скриптинга (XSS-уязвимостей).
Как использовать:
npm install xss-clean
const app = require('express')();
const xssClean = require('xss-clean');
// Protect against XSS attacks, should come before any routes
app.use(xssClean());
app.listen(1337); Что делает: откладывает параметры массива в req.query или в req.body и просто выбирает последнее значение параметра, чтобы избежать HPP-атак.
От чего защищает: препятствует обходу проверок ввода и DoS-атакам с помощью ошибки Uncaught TypeError в асинхронном коде, приводящей к сбою сервера.
Как использовать:
npm install hpp
const app = require('express')();
const hpp = require('hpp');
// Protect against HPP, should come before any routes
app.use(hpp());
app.listen(1337); Что делает: ищет любые ключи в объектах, которые начинаются со знака $ или содержат . из req.body, req.query или req.params, после чего удаляет их или заменяет запрещенные символы разрешенными.
От чего защищает: препятствует внедрение в MongoDB вредоносного оператора. Например, злоумышленники могут отправить объект, содержащий оператор $ или включающий ., что способно изменить контекст операции с базой данных.
Как использовать:
npm install express-mongo-sanitize
const app = require('express')();
const mongoSanitize = require('express-mongo-sanitize');
// Remove all keys containing prohibited characters
app.use(mongoSanitize());
app.listen(1337); Что делает: применяется для ограничения IP-адресов от повторных запросов к эндпоинтам API. Примером может служить ограничение скорости конечной точки, которая отвечает за отправку электронных писем для сброса пароля, что может повлечь за собой дополнительные расходы.
От чего защищает: от brute-force-атак (перебор всех возможных вариантов ключа), DoS- и DDos-атак.
Как использовать:
npm install express-rate-limit
const app = require('express')();
const rateLimit = require('express-rate-limit');
// Restrict all routes to only 100 requests per IP address every 1o minutes
const limiter = rateLimit({
windowMs: 10 * 60 * 1000, // 10 minutes
max: 100 // 100 requests per IP
});
app.use(limiter);
app.listen(1337); На фоне роста спроса на ликвидность в бычьем рынке 2025 года, криптозаймы снова выходят на…
Прокси (proxy), или прокси-сервер — это программа-посредник, которая обеспечивает соединение между пользователем и интернет-ресурсом. Принцип…
Согласитесь, было бы неплохо соединить в одно сайт и приложение для смартфона. Если вы еще…
Повсеместное распространение смартфонов привело к огромному спросу на мобильные игры и приложения. Миллиарды пользователей гаджетов…
В перечне популярных чат-ботов с искусственным интеллектом Google Bard (Gemini) еще не пользуется такой популярностью…
Скрипт (англ. — сценарий), — это небольшая программа, как правило, для веб-интерфейса, выполняющая определенную задачу.…