Url Rewriting - Это вызывает проблему безопасности?

Привет, я недавно прочитал JSP и наткнулся на его технологии, главным образом на сеанс. В сеансе я прочитал переписывание URL одного из методов, которые были выполнены для поддержания сеанса с клиентом. Но поскольку переписывание URL-адресов изменяет URL-адрес с идентификатором сеанса, он может быть виден клиенту. Разве это не проблема безопасности? Скажем, например, если кто-то отмечает этот идентификатор сеанса отдельно от конкретного пользователя и может плохо его использовать? Или есть методы для предотвращения этих проблем?

Исправьте меня, если я ошибаюсь.

Ответ 1

Конечно, это проблема безопасности. Если вы быстро обратите внимание на значение jsessionid, либо от кого-то другого по ошибке в общедоступном URL-адресе с копией, либо в опубликованном скриншоте с некоторым HTTP-средством отладки (Firebug), который показывает заголовки запроса/ответа и соответствующий веб-сайт поддерживает пользователей по логину, тогда вы сможете войти под одним и тем же пользователем, просто добавив cookie jsessionid к URL-адресу или заголовкам запроса. Быстро, потому что эти сеансы истекают по умолчанию после 30 минут бездействия. Это называется атакой фиксация сеанса.

Вы можете полностью отключить переписывание URL-адресов, чтобы jsessionid никогда не отображался в URL-адресе. Но вы по-прежнему чувствительны к атакам фиксации сеанса, некоторые хакеры, возможно, установили сниффер трафика HTTP в общедоступной сети или с помощью какого-либо трояна/вируса или даже использовали XSS, чтобы узнать об этих куках. Чтобы быть ясным, эта проблема безопасности не является специфичной для JSP, PHP, ASP или любого другого веб-сайта, который поддерживает логин на основе cookie-базы, так же хорошо реагирует на это.

Чтобы быть действительно безопасным в отношении логинов, пусть входной и входной трафик переходят через HTTPS вместо HTTP и делают только cookie HTTPS (безопасный).

Ответ 2

URL-адрес перезаписи cookie сеансов не рекомендуется в большинстве (если не во всех) окружениях безопасности. OWASP ASVS явно препятствует его использованию, поскольку это приводит к экспонированию идентификаторов сеанса через небезопасный носитель.

Когда URL-адрес перезаписи cookie сеанса включен, URL-адрес может быть передан (с идентификатором сеанса) на другие сайты, что приведет к раскрытию идентификатора сеанса через заголовок HTTP-Referrer. Фактически, простой запрос браузером к ресурсу, расположенному в другом домене, приведет к возможному захвату (посредством атаки Man-In-The-Middle) или фиксации сеанса; это так же хорошо, как уязвимость Cross Site Scripting на сайте.

С другой стороны, дополнительные механизмы защиты, такие как флаги HttpOnly и Secure-Cookie, внедренные в различные браузеры для защиты файлов cookie сеанса различными способами, больше не могут использоваться, когда URL-переписывание файлов cookie выполняется сайтом.

Ответ 3

Я считаю, что вы имеете в виду cookieless session. Хотя я видел, что он упоминается как "переписывание URL" в кругах Java.

Есть некоторые дополнительные проблемы с захватом сеансов (и они применяются во всех инфраструктурах веб-разработки, которые поддерживают сеансы cookieless, а не только JSP). Но захват сеанса возможен даже с помощью файлов cookie.

Вот довольно хорошая углубленная статья о MSDN о cookieless сессиях и рисках/преимуществах. Опять же, все они являются агностиками платформы.

http://msdn.microsoft.com/en-us/library/aa479314.aspx (в нижней части)