Новое:Talanto осенью: поиск с цифрами, вакансия по шагам и каталог компаний

+687новых вакансий за сутки·55 254вакансии открыты сейчас·Новое:Talanto осенью: поиск с цифрами, вакансия по шагам и каталог компаний

Новые вакансии в TelegramРаботодателям
Talanto
Вакансии
Компании5 791
РезюмеAIПодготовкаСтатьи
ТарифыТарифы
Войти

Не нашли подходящее?

Пусть нужная вакансия найдёт вас сама.

  1. Подборка в TelegramНовые вакансии по вашему фильтру — сразу в бота.Подключить
  2. Мэтчи по резюмеЗагрузите резюме — покажем, где вы подходите лучше всего.Загрузить
  3. Сохранить фильтрНастройте поиск один раз и возвращайтесь к новым вакансиям.Настроить
Что нового на TalantoTalanto осенью: поиск с цифрами, вакансия по шагам и каталог компаний

Для работодателей

Опубликуйте вакансию — отклики придут в ваш кабинет.

  1. Вакансиябесплатно
  2. Откликиконтакты бесплатно
  3. Наймэтапы и интервью

40 компаний публикуют вакансии напрямую · 4 391 кандидат открыт к предложениям

Разместить вакансию

Популярные направления

Все подборки
  • Python7 042
  • Облачные технологии5 085
  • QA вакансии1 814
  • Android1 199
  • Инженер данных831
  • Продакт-менеджер339

Разработка

  • iOS1 135
  • Backend вакансии1 131
  • Fullstack вакансии475
  • AI вакансии458
  • Frontend вакансии404
  • Mobile вакансии27

По стеку

  • Go4 093
  • Java2 435
  • Kotlin990
  • Node.js827
  • Rust665
  • .NET525
  • PHP282
  • C++223
  • C#199

DevOps и инфраструктура

  • Kubernetes2 931
  • Linux-инфраструктура2 312
  • DevOps вакансии2 110
  • Terraform / IaC1 714
  • CI/CD872
  • Мониторинг и Observability825
  • SRE253
  • Кибербезопасность50

Аналитика и данные

  • Аналитик данных497
  • Data Scientist463
  • Бизнес-аналитик374
  • Системный аналитик54

Другие направления

  • Проджект-менеджер119
  • UI/UX дизайн72
  • Ручное тестирование14

По регионам

  • Вакансии в США25 531
  • Вакансии в Европе9 792
  • Работа в России3 193
  • Вакансии в Канаде2 236

По формату

  • Удалённые вакансии43 578
  • Релокация в США25 531
  • Гибридная работа4 289
  • Офисная работа3 340

По уровню

  • Senior вакансии21 650
  • Middle вакансии12 211
  • Junior вакансии3 886

Сейчас нанимают

Все компании
  • Rakuten188 вакансий
  • ASML163 вакансии
  • Grab134 вакансии
  • Wise125 вакансий
  • Celonis28 вакансий
  • Infobip28 вакансий
  • Spotify24 вакансии
  • Adyen17 вакансий
  • Darktrace17 вакансий
  • Monzo13 вакансий

Вакансии из 344 источников: карьерные страницы компаний и джоб-борды.

КомпанииО насНовостиПубличная офертаУсловия использованияПолитика конфиденциальностиПоддержка
←К теме FastifyВсе вопросы
FastifyMiddleТеория

Что такое @fastify/helmet и какие заголовки безопасности он устанавливает?

В закладки
Сначала попробуйте ответить сами30 секунд
Сравнить с ответом ↓

@fastify/helmet — обёртка над helmet.js, добавляет 11 HTTP-заголовков безопасности за одну строку регистрации. Каждый заголовок настраивается или отключается через объект опций плагина.

Установка и базовое подключение

npm install @fastify/helmet
import Fastify from 'fastify';
import helmet from '@fastify/helmet';

const app = Fastify();

// Все защитные заголовки с настройками по умолчанию
await app.register(helmet);

await app.listen({ port: 3000 });

Что делает плагин

@fastify/helmet регистрирует Fastify-плагин, который подключает библиотеку helmet как middleware. Helmet выставляет HTTP-заголовки, защищающие от распространённых атак: XSS, clickjacking, MIME-sniffing, утечки реферера и других. Без него браузер применяет небезопасные дефолты.

Заголовки, устанавливаемые по умолчанию

  • Content-Security-Policy — ограничивает источники скриптов, стилей, изображений и фреймов. Дефолтная политика довольно строгая, требует настройки под ваш фронтенд.
  • Cross-Origin-Embedder-Policy: require-corp — запрещает загрузку ресурсов из других источников без явного разрешения.
  • Cross-Origin-Opener-Policy: same-origin — изолирует окна браузера от cross-origin документов.
  • Cross-Origin-Resource-Policy: same-origin — запрещает встраивание ресурса в другие origin.
  • Origin-Agent-Cluster: ?1 — требует изолированного агент-кластера.
  • Referrer-Policy: no-referrer — не передаёт URL страницы в заголовке Referer.
  • Strict-Transport-Security — принудительно переключает браузер на HTTPS (HSTS). В дефолте: max-age=15552000; includeSubDomains.
  • X-Content-Type-Options: nosniff — запрещает браузеру угадывать MIME-тип.
  • X-DNS-Prefetch-Control: off — отключает DNS-предзагрузку.
  • X-Download-Options: noopen — запрещает IE автоматически открывать загрузки.
  • X-Frame-Options: SAMEORIGIN — запрещает встраивание страницы в iframe с другого origin (защита от clickjacking).
  • X-Permitted-Cross-Domain-Policies: none — запрещает Adobe Flash/Acrobat доступ к cross-domain данным.
  • X-XSS-Protection: 0 — намеренно отключает устаревший XSS-фильтр IE/Chrome, который сам создавал уязвимости.

Тонкая настройка CSP

Content-Security-Policy требует тщательной конфигурации под ваш проект:

await app.register(helmet, {
  contentSecurityPolicy: {
    directives: {
      defaultSrc: ["'self'"],
      scriptSrc: ["'self'", "'nonce-{nonce}'", 'https://cdn.example.com'],
      styleSrc: ["'self'", "'unsafe-inline'"],
      imgSrc: ["'self'", 'data:', 'https:'],
      connectSrc: ["'self'", 'https://api.example.com'],
      fontSrc: ["'self'", 'https://fonts.gstatic.com'],
      objectSrc: ["'none'"],
      upgradeInsecureRequests: [],
    },
  },
  // Отключить COEP если нужны сторонние ресурсы без CORP-заголовка
  crossOriginEmbedderPolicy: false,
  // Настроить HSTS
  hsts: {
    maxAge: 31536000,
    includeSubDomains: true,
    preload: true,
  },
});

Отключение отдельных заголовков

await app.register(helmet, {
  // Отключить X-DNS-Prefetch-Control
  dnsPrefetchControl: false,
  // Отключить X-Frame-Options (если используете CSP frame-ancestors вместо него)
  frameguard: false,
});

Подводные камни

  • CSP ломает инлайн-скрипты — дефолтная политика запрещает 'unsafe-inline'; инлайновые обработчики onclick и style-атрибуты перестанут работать. Используйте nonce или хэш.
  • COEP и сторонние ресурсы — Cross-Origin-Embedder-Policy: require-corp блокирует загрузку изображений, шрифтов и скриптов со сторонних CDN, у которых нет заголовка Cross-Origin-Resource-Policy. Часто приходится отключать.
  • HSTS и HTTP-среды разработки — не включайте HSTS локально; браузер запомнит директиву и перестанет ходить по HTTP, что ломает dev-окружение.
  • X-Frame-Options vs CSP frame-ancestors — используйте один из механизмов, не оба. При наличии frame-ancestors в CSP браузеры игнорируют X-Frame-Options.
  • Порядок регистрации — helmet должен быть зарегистрирован до роутов; иначе заголовки не добавятся к ответам.
  • Не заменяет CSP-аудит — плагин добавляет заголовки, но не анализирует HTML. Проводите CSP-аудит с report-uri или report-to.
  • crossOriginOpenerPolicy ломает OAuth popup — если вы открываете OAuth в popup-окне, COOP: same-origin обрывает связь между окнами; отключите или смените политику на same-origin-allow-popups.
  • Версии helmet и @fastify/helmet расходятся — всегда смотрите, на какую мажорную версию helmet опирается плагин; API директив менялось между helmet 5, 6 и 7.

Частые вопросы на собеседовании

  • Что такое Fastify и каковы его основные преимущества перед Express.js?
  • Как работает система плагинов (plugin system) в Fastify? Что такое fastify-plugin и почему он нужен для инкапсуляции scope?
  • Что такое schema-based validation в Fastify и как используется JSON Schema?
  • Что такое lifecycle в Fastify? Перечислите основные hooks по порядку.

Типичные ошибки

  • Дает общий ответ про Node.js и не называет конкретные API Fastify.
  • Не объясняет, где в lifecycle находится @fastify/helmet.
  • Не разделяет validation, authorization, business logic и persistence.
  • Игнорирует ошибки, лимиты входных данных, observability и тестирование.

Что проверяет интервьюер

  • Может объяснить @fastify/helmet на примере кода.
  • Называет ключевые API: @fastify/helmet.
  • Использует точные API Fastify, а не вымышленные hooks/decorators/methods.
  • Видит production-риски: безопасность, отказоустойчивость, логирование и тесты.

Как вы знаете этот вопрос?

Проверить себя по теме Fastify →

Источники

  • https://github.com/fastify/fastify-helmet#readme
←Предыдущий вопросЧто такое `@fastify/rate-limit` и как он работает?Следующий вопрос→Какие production-риски есть у Fastify: blocking code, connection pooling, config, auth, observability, deploy или graceful shutdown?

Связанные темы

Fastifyapi-designsecurity-hardening