Могут ли идентификаторы X-MiniProfiler-идентификатора в заголовке HTTP представлять угрозу безопасности в режиме выпуска? - PullRequest
0 голосов
/ 10 июля 2019

У нас есть (более старый) веб-сайт, который использует MiniProfiler для определения загрузки страницы, и эта функция используется не только в режиме отладки, но и на действующем веб-сайте при входе в систему в качестве администратора.

Если не войти в систему как администратор, JavaScript MiniProfiler не будет выполнен и, следовательно, не будет отображать обзор загрузки страницы в верхнем левом углу.

Однако X-MiniProfiler-Ids все еще находится в HTTP HeaderЭто означает, что каждый запрос, профилирование выполняется, даже если он не визуализируется.

Причина этого заключается в том, что MiniProfiler должен быть инициирован в функции Application_BeginRequest функции Global.asax, где Sessionнедоступен, где мы храним информацию о пользователе.Итак, поскольку у нас нет пользовательской информации, чтобы определить, следует ли выполнять профилирование, профилирование выполняется каждый запрос (для каждого пользователя), но не визуализируется.

Я попытался исправить это, сохранив информацию о пользователе.в Session по-другому, но решения, которые я нашел, все же дали мне null ссылки.

Имеет ли ваша X-MiniProfiler-Ids в HTTP header угрозу для разоблачения, даже если JavaScriptфайл не выполняется?Существует ли снижение производительности при использовании MiniProfiler для каждого запроса?

Я попробовал следующие решения, чтобы получить переменную Session:

protected void Application_BeginRequest(object sender, EventArgs e)
{
     if (HttpContext.Current.Session["userinfo"] != null)
     {
         MiniProfiler.Start();
     }
}
protected void Application_AcquireRequestState(object sender, EventArgs e)
{
     if (HttpContext.Current.Session["userinfo"] != null)
     {
          MiniProfiler.Start();
      }
}

В обоих случаяхSession был нулевым.

...