РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
⊗jsnsSpPtHd 181 of 201 menu
◀ ▶

Заголовки безопасности в Nest

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

Часть рисков снимают заголовки безопасности в каждом ответе. Их задают до вызова метода контроллера, например функцией промежуточного слоя Express. Готовый пакет для всех заголовков сразу здесь не подключаем: достаточно нескольких записей вручную.

Покажем на примере постов:

import { NextFunction, Request, Response } from 'express'; export function postSecurity( req: Request, res: Response, next: NextFunction, ) { res.setHeader('X-Content-Type-Options', 'nosniff'); res.setHeader('X-Frame-Options', 'DENY'); res.setHeader('Referrer-Policy', 'no-referrer'); next(); }

Контроллер отдаёт список по префиксу темы:

import { Controller, Get } from '@nestjs/common'; @Controller('posts') export class PostController { @Get() getPosts(): string { return 'All posts'; } }

В корневом модуле повесим слой на адреса списка:

import { MiddlewareConsumer, Module, NestModule, } from '@nestjs/common'; import { PostController } from './post.controller.js'; import { postSecurity } from './post.security.js'; @Module({ controllers: [PostController], }) export class AppModule implements NestModule { configure(consumer: MiddlewareConsumer) { consumer.apply(postSecurity).forRoutes('posts'); } }

Добавьте функциональный слой со служебными заголовками ответа для адресов WorkerController и подключите его в WorkersModule.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить