بحث امنیت از اون بحثهای جذاب و چند وجهی است که پرداختن به اون نیاز به زمان و دانش زیادی داره، فرض رو فعلاً بر این قرار میدیم که در برنامه تمام نکات لازم رو رعایت کردین، یه چندتا نکته دیگه هم باید رعایت بشه.
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>