Я использовал VeraCode для проверки своего кода, в ходе проверки я обнаружил тип уязвимости CRLF Injection, потому что я использовал несколько файлов cookie. Я пытался решить, с тегом httpOnlyCookies=true
в web.config
файле или с CookieName.HttpOnly = true
в коде C # позади, но он не проходит проверку в VeraCode. У тебя есть идеи?
Это мой код, я объявил cookie в суперклассе UserInfo.cs:
private HttpCookie httpCookie = null;
public UserInfo()
{
if (this.httpCookie == null)
{
this.httpCookie = this.Context.Request.Cookies["ExampleCookie"];
}
if (this.httpCookie == null)
{
this.httpCookie = new HttpCookie("ExampleCookie");
this.httpCookie.HttpOnly = true; //I tried with this too
this.Context.Response.Cookies.Set(this.httpCookie);
}
}
static public UserInfo GetCurrent
{
get
{
return new UserInfo();
}
}
public string UserName
{
set
{
this.httpCookie.Values["UserName"] = value.ToString();
this.Context.Response.SetCookie(this.httpCookie);
}
get
{
return this.httpCookie["UserName"] == null ? string.Empty : this.httpCookie["UserName"].ToString();
}
}
web.config:
<system.web>
<httpCookies httpOnlyCookies="true" />