🀄

NestJSでバックエンドアプリを構築する際に気をつけたいこと

2022/05/02に公開

はじめに

NestJSバックエンドアプリはデフォルトのままだと、サーバ情報がバレます。
下記のResponse HeadersのX-Powered-Byをご覧ください。Expressだとバレます。
image.png

例えば、Expressの脆弱性が発見された場合、サーバに対して攻撃を受ける可能性があります。
そこで、サーバ情報を隠す方法があります。


main.tsにimport文を1行追記します。

main.ts
import { NestExpressApplication } from '@nestjs/platform-express'; //  追記

NestFactory.createを修正して、更にコードを1行追記します。

main.ts
// const app = await NestFactory.create(AppModule); // 修正前
const app = await NestFactory.create<NestExpressApplication>(AppModule); // 修正後
app.disable('x-powered-by'); // 追記

下記のようにレスポンスヘッダーにX-Powerd-Byの項目が非表示となりました。
これでサーバ情報が、ExpressなのかApacheなのかNginxなのかバレません。

image.png

以上です。

Discussion