Не удалось отключить флаг HttpOnly в браузере через ColdFusion - PullRequest
2 голосов
/ 10 января 2020

В нашем приложении мы используем переменные сеанса J2EE для управления сеансом. Недавно мы мигрировали с ColdFusion 9 на ColdFusion 2018. После миграции функция выхода из системы не работает. Мы обнаружили, что в ColdFusion 2018 повар ie JSESSIONID не очищается из браузера, поскольку в браузере для флага HttpOnly установлено значение true.

Мы пытались отключить этот флаг HttpOnly в браузер следующими способами:

By disabling HttpOnly flag and Global Script Protection in CF admin.
By modifying the jvm.config via CF admin by adding "-Dcoldfusion.sessioncookie.httponly=false".

Но при этом флаг HttpOnly по-прежнему отображается как включенный в браузере. Из-за этого клиентский скрипт не может очистить cook ie JSESSIONID и, следовательно, не работает функция выхода из системы.

Есть ли в CF2018 какой-либо способ отключить флаг HttpOnly в браузере для повара ie JSESSIONID?.

Примечание:

В CF9 флаг HttpOnly отключен в браузере для повара ie JSESSIONID. Мы используем корпоративную версию CF2018 (пробная версия, срок действия которой еще не истек). Перезапустил сервисы CF после обновления настроек в CF admin.

1 Ответ

1 голос
/ 10 января 2020

Вам, вероятно, придется реорганизовать ваше приложение, чтобы устранить ряд уязвимостей OW ASP, которые не могут быть обработаны с помощью CF 9 из коробки. В зависимости от вашей аудитории, вы должны привлечь стороннего специалиста для выполнения теста на проникновение в вашу базу кода.

Вам потребуется реорганизовать процесс выхода из системы. Вы не должны отключать httpOnly на jsessionid cook ie, это предотвращение атак межсайтового скриптинга.

https://www.owasp.org/index.php/HttpOnly

Согласно сети разработчиков Microsoft, HttpOnly - это дополнительный флаг, включенный в заголовок ответа Set-Cook ie HTTP. Использование флага HttpOnly при генерации Cook ie помогает снизить риск доступа клиентского скрипта к защищенному Cook * ie (если браузер его поддерживает).

https://docs.microsoft.com/en-us/previous-versions//ms533046 ( v = vs.85)? redirectedfrom = MSDN

При использовании идентификаторов сеансов JEE вам необходимо добавить это к части вашего процесса выхода из системы:

<cfset getPageContext().getSession().invalidate()>

Затем перенаправить на другой страница, как ваш экран входа в систему. Это приведет к удалению jsessionid cook ie и фактически сделает недействительным сеанс JEE на сервере.

...