メモに残しておこうと思ってたら年越して2015年2月ですね。社畜業務でシャチークシャチークしていると時が経つのは早いものです。
開発する際に最初にやったことのメモで、この業界のメイド王と名高いしばやんさんの雑記の内容がほとんどです。
これを書いているときに使っているのは、
- Visual Studio 2013 Update4
- .NET Framework4.5
- ASP.NET MVC5
- C#
やりたいことは、
- セキュアなごにょごにょ
- ヘッダーのごにょごにょ
- ごにょごにょ...
難しいことは何もやってないので、変更した設定などの意味についてはふれません。ただただ設定したことを書きます。
Global.asaxの編集
Application_Startメソッド内に以下の内容を追加します。
そして、Application_PreSendRequestHeadersメソッドを追加します。
ヘッダーの処理関連と他諸々...。
protected void Application_Start() { // 上の方は略 ViewEngines.Engines.Clear(); ViewEngines.Engines.Add(new RazorViewEngine()); AntiForgeryConfig.CookieName = "token"; AntiForgeryConfig.SuppressXFrameOptionsHeader = true; } protected void Application_PreSendRequestHeaders() { Response.Headers.Remove("Server"); Response.Headers.Remove("X-AspNetMvc-Version"); }
App_Start/RouteConfigの編集
ここでは、RegisterRoutesメソッド内に以下のコードを追加します。
urlをlowercaseにするのと、トレイリングスラッシュ。
public static void RegisterRoutes(RouteCollection routes) { // 上の方は略 routes.LowercaseUrls = true; routes.AppendTrailingSlash = true; }
WebConfigの編集
認証クッキー絡みの設定などです。
<system.web> <httpRuntime targetFramework="4.5" enableVersionHeader="false" /> <authentication mode="Forms"> <forms requireSSL="true" /> </authentication> <httpCookies requireSSL="true" />
あと、 SSLはもちろん有効にしてます。
ヘッダー絡みの変更については、Application_PreSendRequestHeadersメソッドで一元管理しようかなーとかも思いましたが、「まいっか」という理由でやめました。
あと、
ASP.NET MVCでResponse Headerのサーバーバージョンをどうやって隠しますか? - のんきネコ - 博客园
で書いてある404エラー時にヘッダーにサーバーのバージョンがでちゃう事件は、現在の環境では起こらないので、どっかで誰かが改善してくれてたんだなと思ってます。
→2015/1追記ですが、結果として上のリンクのCustomHeaderModuleつくる対応、やるべきって判断になりました!。