بحث امنیت از اون بحثهای جذاب و چند وجهی است که پرداختن به اون نیاز به زمان و دانش زیادی داره، فرض رو فعلاً بر این قرار میدیم که در برنامه تمام نکات لازم رو رعایت کردین، یه چندتا نکته دیگه هم باید رعایت بشه.
1- استفاده از cookieهای با خاصیت samesite:
HttpCookie cookie = new HttpCookie(FormsAuthentication.FormsCookieName, hashed) { HttpOnly = true, Expires = DateTime.Now.AddMinutes(Convert.ToInt32(expiration.ItemValue)), Name = ".SITE_AUTH", SameSite = SameSiteMode.Strict };
2- حذف “X-Powered-By از Http Response Header:
<system.webServer> <httpProtocol> <customHeaders> <remove name="X-Powered-By" /> </customHeaders> </httpProtocol> </system.webServer>
3- حذف X-AspNetMvc-Version:
protected void Application_Start() { MvcHandler.DisableMvcResponseHeader = true; }
4- حذف X-AspNet-Version:
<system.web> <httpRuntime enableVersionHeader="false" /> </system.web>
5- ایجاد nosniff بر روی X-Content-Type-Options:
<system.webServer> <httpProtocol> <customHeaders> <remove name="X-Content-Type-Options"/> <add name="X-Content-Type-Options" value="nosniff"/> </customHeaders> </httpProtocol> </system.webServer>
6- جلوگیری از TRACE یا TRACK:
برای اینکه هکر کوکیهای HttpOnly ما را دور نزند باید دو عملگر TRACE و TRACK را غیرفعال کنیم:
<system.webServer> <security> <requestFiltering> <verbs> <add verb="TRACE" allowed="false" /> <add verb="TRACK" allowed="false" /> </verbs> </requestFiltering> </security> </system.webServer>