In my web project setting to turn on httpOnlyCookies is not there. It is false by default. Also there is no place in code where cookie is being set to HttpOnly. However, when I browse to the site I can see that ASP.NET_Session cookie is being passed as HttpOnly. How is it set to HttpOnly?
ASP.NET session cookies are HTTP only, regardless of the httpOnlyCookies
setting linked to in your question, because this is burned into ASP.NET. You can't override this.
If you dig into the System.Web.SessionState.SessionIDManager
class in the System.Web assembly the code for creating the ASP.NET session cookie looks like:
private static HttpCookie CreateSessionCookie(string id)
{
HttpCookie cookie = new HttpCookie(Config.CookieName, id);
cookie.Path = "/";
cookie.HttpOnly = true; // <-- burned in
return cookie;
}
It is HttpOnly so your session cookie cannot be modified by the client with JavaScript.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With