NestJSでバックエンドアプリケーションを開発している最中、デバッグ中にコンソール画面でAPIレスポンスにX-Powered-By: Express
ヘッダーが表示されていることに気づきました。
このままでは攻撃者に技術スタックが特定されるリスクがあるので、X-Powered-By
ヘッダーを非表示にする必要があります。
まず、ルートに次の記述があるはずです。
const app = await NestFactory.create(AppModule);
次に、以下をインポートします。
import { ExpressAdapter } from '@nestjs/platform-express';
import express from 'express';
最後に、以下のようにコードを修正します。
const expressApp = express();
expressApp.disable('x-powered-by');
const adapter = new ExpressAdapter(expressApp);
const app = await NestFactory.create(AppModule, adapter);
これで、X-Powered-By
ヘッダーが表示されなくなります。
以上の手順で、技術スタックを露見させずにアプリケーションのセキュリティを向上させることができます。
※補足
以下でもOKみたいです。
import { NestExpressApplication } from '@nestjs/platform-express'
const app = await NestFactory.create<NestExpressApplication>(AppModule)
app.disable('x-powered-by')