かわろぐ

技術、ボルダリング、セキュリティ、その他もろもろ

MENU

asp.net mvc でレスポンスヘッダに値を追加、削除する方法

環境

  • asp.net mvc 5.2
  • mono
  • .net Framework 4.5

レスポンスヘッダって?

下記の図はGoogleChrome の開発者ツールの network で見たものです。この内の Response Headers の欄がクライアントからのリクエストに対してサーバ側が返却しているレスポンスヘッダで、各種の状態を表すモノが入っています。

f:id:kawa_xxx:20150420211702p:plain

この中の X-AspNet-Version とかは使っているフレームワークのバージョンがまんま表示されています。これではセキュリティ的に良くないです。なのでこれを消したい!加えてWebアプリの動作の都合で何らかのヘッダを追加してレスポンスを返したいという場合があったので、一番簡単にできる手順を調べました。

レスポンスヘッダに値を追加する方法

Global.asax.cs に以下のメソッドを追加する

protected void Application_PreSendRequestHeaders()
{
     Response.Headers.Add("key""value");
}

 レスポンスヘッダから値を削除する方法

protected void Application_PreSendRequestHeaders()
{
     Response.Headers.Remove("key");
}

他にも Web.Config に書く方法などありますが、とりあえず今回はこれで。

参考文献

http://blogs.4ward.it/penetration-testing-removing-excessive-http-response-headers-in-azureiis8/ http://blog.shibayan.jp/entry/20130518/1368861454