После обеспечения безопасности файлов cookie ASPXAUTH и ASP.NET_SessionId это правильное поведение? - PullRequest
0 голосов
/ 20 февраля 2019

В результате теста на проникновение мы получили уведомление о том, что наш веб-сайт не защищает файлы cookie ASPXAUTH и ASP.NET_SessionId.

Я сделал несколько изменений для защиты файлов cookie.

  • 1) Добавлен атрибут requireSSL = "true" в элемент System.Web -> Authentication -> Forms в файле web.config.
  • 2) В коде, который очищает файлы cookie ASP.NET_SessionId и ASPXAUTH при первоначальном входе в систему и выходе из системы, который устанавливает их безопасность и только HTTP.
  • 3) Добавлен код в метод Application_EndRequest Global.asax, который конкретно устанавливает файлы cookie ASP.NET_SessionId и ASPXAUTH в Response.Cookies для защиты и HttpOnly.

Я не могу понять, почему второй имеет значение, но без него ASP.NET_SessionIdcookie никогда не отображается в объекте ответа как безопасный.

Используя инструменты разработчика Chrome, я сделал снимок экрана в несколько моментов времени, и некоторые действия выглядят для меня неожиданными.Если бы кто-то мог взглянуть на это и сообщить мне, если что-то ведется правильно, я был бы очень признателен.

Этот снимок экрана был сделан при начальной загрузке страницы после очистки файлов cookie для сайта: Поначальная загрузка страницы

Два файла cookie SessionId кажутся мне странными, почему существует один безопасный, а другой нет?

Этот снимок экрана был сделан после нажатия кнопки входана сайте: После нажатия кнопки входа в систему

Этот вариант имеет для меня еще меньшее значение, почему файл cookie ASP.NET_SessionId в запросе не помечен как безопасный, или HttpOnly, этоожидаемое поведение?Я предполагаю, что файл cookie SessionId не отправляется в ответе. Правильное поведение

Этот снимок экрана был сделан после нажатия на ссылку на сайте для просмотра новой страницы: введите описание изображения здесь

Если возможно, это имеет для меня еще меньше смысла.Два файла cookie, о которых идет речь, отправляются в запросе, оба не настроены как HttpOnly или Secure.Это правильное поведение?Кроме того, правильно ли ни один файл cookie не отображается в ответе?

Я потратил довольно много времени здесь, на StackOverflow и в Google, чтобы попытаться найти правильный способ настройки этих файлов cookie.Я просто не знаю, было ли то, что я сделал, правильным, так как я не уверен, как должна выглядеть фиксированная реализация.

Любая помощь, которая может быть предоставлена, будет очень признательна.

Спасибо, Натан

1 Ответ

0 голосов
/ 20 февраля 2019

Посмотрите на эту похожую ветку на SO Как защитить cookie ASP.NET_SessionId?

Вы устанавливаете флаг безопасности cookie во время события начала сеанса?Как то так.

protected void Session_Start(Object sender, EventArgs e)
{
// secure the ASP.NET Session ID only if using SSL
// if you don't check for the issecureconnection, it will not work.
if (Request.IsSecureConnection == true)
     Response.Cookies ["ASP.NET_SessionID"].Secure = true;
}
...