Установите безопасный файл cookie из файла weblogic.xml для HTTPS - PullRequest
0 голосов
/ 23 января 2019

Cookie определен в weblogic.xml

<session-descriptor>
    <cookie-name>A_JSESSIONID</cookie-name>
</session-descriptor>

Когда мы используем соединение HTTPS, файл cookie A_JSESSIONID не имеет безопасного статуса. Обнаружено, что при проверке безопасности с помощью Burp обнаружена проблема с файлом cookie SSL без установленного флажка безопасности.

Я не могу использовать

<cookie-secure>true</cookie-secure>

потому что наше приложение может также использоваться HTTP.

Я пытался установить безопасный статус в фильтре

    public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse,
                         FilterChain filterChain) throws IOException, ServletException {

        try {

 HttpServletRequest request = (HttpServletRequest) servletRequest;
            Cookie[] cookies = request.getCookies();

            if(cookies!=null && servletRequest.isSecure())
            {               
                for (Cookie cookie : cookies) {
 logger.debug("set Secure for cookie: " + cookie.getName());
                    cookie.setSecure(true);
                }
            }
...

Регистратор показывает файл cookie A_JSESSIONID. Но это не работает. Это все еще не безопасно.

Я также нашел информацию (https://docs.oracle.com/cd/E23943_01/web.1111/e13711/thin_client.htm#SCPRG139):

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

AuthCookieEnabled имеет значение true в консоли WebLogic, но я не вижу _WL_AUTHCOOKIE_A_JSESSIONID в моем списке файлов cookie. Просто A_JSESSIONID без защищенного статуса.

Как я могу динамически установить безопасность файлов cookie weblogic? Или как я могу найти _WL_AUTHCOOKIE_A_JSESSIONID?

Спасибо.

1 Ответ

0 голосов
/ 29 января 2019

Это мое чтение по этой теме до сих пор -

  1. Убедитесь, что Консоль администрирования, Домен> Конфигурация> Веб Приложения> Auth Cookie Enabled отмечен (по умолчанию)
  2. Элемент списка Включить SSL конечно
  3. Элемент списка

код, подобный этому

   workCookie = new Cookie(cookieName,"startValue");
   workCookie.setPath("/");
   workCookie.setMaxAge(10 * 24 * 3600);
   workCookie.setSecure(true);
   response.addCookie(workCookie);

теперь при доступе к приложению в http вы не видите этот файл cookie, а при доступе через https вы видите этот файл cookie.

Надеюсь, это поможет

...