Управление сеансами с аутентификацией Windows - PullRequest
6 голосов
/ 17 ноября 2009

В веб-приложении ASP.NET, использующем встроенную проверку подлинности Windows, привязан ли сеанс к удостоверению Windows?
Другими словами, если я войду (используя IWA) в приложение, и приложение сохранит некоторые «вещи» в моем сеансе, будет ли этот материал доступен только по идентификатору сеанса? Например, если злоумышленнику удалось украсть мой идентификатор сеанса, но НЕ мои учетные данные, сможет ли он получить доступ к моим материалам сеанса? Или этот сеанс доступен только одному и тому же идентификатору, требуя оба идентификатора сеанса И ИД Windows для доступа к нему?

1 Ответ

4 голосов
/ 17 ноября 2009

Отличный вопрос. Я только что проверил тест, чтобы подтвердить, прежде чем написать этот ответ.

Если я «Персона А», а вы «Персона Б», то вот что должно произойти:

  • Персона A входит на веб-сайт с использованием IWA, получает идентификатор сеанса (например, в URL)
  • Человек B также входит на веб-сайт под своим именем (поэтому он должен быть аутентифицирован)
  • Персона A отправляет Персоне B URL-ссылку, которая содержит идентификатор сеанса
  • Лицо B нажимает на эту ссылку, они попадают прямо на веб-сайт, используя данные сеанса Лица A

Обратите внимание, что лицо B по-прежнему распознается веб-сайтом как лицо B, даже если они используют данные сеанса лица A. Поэтому, если у вас есть код, который проверяет права пользователя и т. Д., Тогда эти проверки все еще выполняются в контексте Person B.

Это может звучать как огромная проблема, но на самом деле это не так долго, пока программисты не небрежны. Например, единственный результат, который получило Person B в моем тесте выше, состоял в том, что они унаследовали макеты экрана и сетки, которые настроил Person A, потому что мы выполняем наши проверки разрешений в реальном времени (т.е. они не кэшируются). Если вы храните конфиденциальные данные в сеансе, это может быть проблемой, но это проблема, только если их поля, показывающие их, не проверяются на разрешение каждый раз, когда они отображаются. Это также проблема только в том случае, если время сеанса для лица А. не истекло.

...