Я недавно прочитал одну из статей Джеффа о XSS , и это заставило меня задуматься о том, как лучше защитить файлы cookie для входа в систему в моей домашней системе аутентификации.
В основном то, что я делаю сейчас, это (обратите внимание, что все настраивается и в настоящее время установлено на true
):
protected static string ComputeLoginHash(string passwordhash){
StringBuilder sb=new StringBuilder();
sb.Append(passwordhash);
if(CookieUseIP){
sb.Append(HttpContext.Current.Request.UserHostAddress);
}
if(CookieUseBase){
sb.Append(HttpContext.Current.Request.MapPath("/"));
}
if(CookieUseBrowserInfo){
sb.Append(HttpContext.Current.Request.UserAgent);
}
sb.Append(SiteName);
return ComputeHash(sb.ToString());
}
(обратите внимание, что хеш-пароль создается из пароля, уникальной солии имя пользователя).
Хорошо, поэтому я ставлю под сомнение строку UserAgent
.Есть ли вред в этом?Или браузеры, которые изменят свою строку UserAgent при нормальной работе (например, без обновления)?Моя цель в основном состоит в том, чтобы злоумышленник получил файл cookie для входа в систему, чтобы он ничего не мог с ним сделать.Поможет ли это достичь моей цели или это будет слишком громоздким для пользователя?На данный момент единственная информация, которую я храню в текстовом файле cookie, - это имя пользователя.