Node.js(Express.js)でセキュリティを設定する(http脆弱性対策はhelmetを使えばOK)

Express.jsのセキュリティ強化用途で推奨されているHelmetの設定手順の記事です。

Express.jsのセキュリティ推奨設定は以下公式サイトを参照ください。
Express.js公式サイト Security Best Practice

Helmetはhttpヘッダの設定をサポートしてくれるライブラリでWebの脆弱性対策に使えます。
設定も簡単なので早めに設定してしまいましょう。

HelmetのGithubページはこちらです。チュートリアル等参照できます。
GitHub(Helmet)

デフォルトのhelmet設定手順

npmからhelmetをインストール

npm install helmet --save

app.jsで定義。use helmetはコードの上の方に書いておきます。
headerに確実に設定されるようにと公式にも書いてありますので、app = express();の次ぐらいに書いてしまいましょう。

const helmet = require('helmet')

~~~
const app = express();
app.use(helmet())

デフォルト設定はこれで終わり。めちゃくちゃ簡単ですね。

追加オプションの設定手順

ちなみにGithubの下の方にオプション一覧が載っていて追加で色々設定できます。
オプション(下の画像の青文字部分)をクリックすると脆弱性の一般的な説明が参照できます。

f:id:aonion2:20190112001611p:plain

オプションの設定方法は以下のようにtrue/falseで設定すればOKです。

//オプション(frameguard)を無効にする
app.use(helmet({
  frameguard: false
}))

//オプション(noCache)を有効にする
app.use(helmet({
  noCache: true
}))

自作アプリケーション初心者にはさくらVPSが手軽でおすすめです。