2009-08-24 4 views
5

У меня есть веб-сайт ASP.NET 3.5 с использованием стандартного поставщика членства в SQL.Почему ASP.NET принимает внешние идентификаторы сеанса?

Приложение должно передать IBM Rational AppScan, прежде чем мы сможем продвигаться к производству.

Я получаю сообщение об ошибке:
Серьезность: Высокая Тип
Test: Application
уязвимый URL: http://mytestserver/myapp/login.aspx
Рекультивация Задачи: Не принимают внешне созданные идентификаторы сеанса

Что я могу сделать чтобы исправить это?

Я использую поставщик членства в SQL. Связано ли это? Я также использую стандартные элементы управления входами. У меня есть «Запомнить меня», и он скрыт.

Спасибо.

+0

Я не могу придумать, почему это было бы изначально плохим? Не меняет того факта, что они проверяют это, но мне интересно * почему *. – Thorarin

ответ

8

Это не уязвимость (и мне действительно не нравится AppScan из-за его ложного позитива es - количество раз, когда мне приходилось объяснять, что CSRF-файлы cookie не должны быть связаны с сеансом в моем маленьком проекте с открытым исходным кодом, вызывает раздражение).

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

Session.Abandon(); 
Response.Cookies.Add(new HttpCookie("ASP.NET_SessionId", "")); 

Но при аутентификации форм данные аутентификации не проводятся в сеансе, и поэтому фиксация не является проблемой вообще.

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

+0

Спасибо. Однако я пробовал это, но IBM Rational AppScan сообщила о той же ошибке безопасности. –

+0

Это не уязвимость, и ваше объяснение неверно. Вы написали и приняли неверный ответ. – blowdart

+0

Я согласен с вами, но просто говорю, что этого недостаточно. Мне тоже не нравится инструмент AppScan, но это мир, в котором я живу. Я теряю день или около того в каждом проекте. Пока они не изменят политику, я должен жить с ней. –

2

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

Попробуйте установить уникальный путь куков:

<forms name="YourAppName" 
     path="/FormsAuth" ... /> 

http://msdn.microsoft.com/en-us/library/ms998310.aspx#paght000012_additionalconsiderations

Больше читать ... http://msdn.microsoft.com/en-us/library/ms998258.aspx

+0

Извините, я уже делал это. –

0

Казалось бы, RegenerateExpiredSessionId Недвижимость контролирует это. Установите значение true. Также используйте тайм-аут на низком уровне, наиболее подходящем для пользователей (например, 10-15 минут).

+1

Спасибо. Я пробовал это, но IBM Rational AppScan поражает сайт каждые несколько секунд. Уменьшение значения до 10 минут не помогает. –

Смежные вопросы