ページ

2012-12-09

node + expressでホスト名を見てアクセス制限した話


node + expressでホスト名を見てアクセス制限をする方法


どゆこと?

例えばlocalhostというアドレスでアクセスされた場合にはアクセスを受け付けるけど、127.0.0.1という感じでIPアドレス直打ちでアクセスされた場合にはリクエストを受け付けない(ファイヤーウォールの用にアクセスそのものを受け付けないのではなく400 Bad Requestのレスポンスを返す)ようにする方法です。

ローカルにnodeで鯖立ててるけど、別のマシンからアクセスされたくない時等など色々な場面で使えると思います。


なんでアクセスされたアドレスが分かるの?

現在一般的に使用されているHTTP1.1ではHostヘッダーは必須のヘッダーなので、そいつを利用するわけです。

なんで400で返すの?

Hostヘッダーが無い場合は400で応答すべきとRFCに書いてあるのでそれに従います。

存在しないHost(この場合は127.0.0.1)にアクセスがあった場合も同様に400を返さなければならないとRFCに書いてあるので、そちらもそれに従います。

はよコード

ご納得のゆくまでご閲覧ください。

重要なのはuse関数です。



検証した

0 件のコメント:

コメントを投稿