Подтвердить что ты не робот

Был получен заголовок файла cookie, содержащий недопустимый файл cookie.

Я переношу мой сервер с Tomcat-6 на Tomcat-9. Мой сайт разработан для протокола HTTP/1.1. Файл server.xml содержит протокол коннектора org.apache.coyote.http11.Http11NioProtocol. Сервер запускается нормально, не генерируя никаких ошибок. Однако, когда я пытаюсь получить доступ к моему сайту с помощью localhost, я получаю следующую ошибку: -

INFO [https-nio-8445-exec-3] org.apache.tomcat.util.http.parser.Cookie.logInvalidHeader Получен заголовок файла cookie [2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 21, 22, 23]; userId = 53136], в котором содержится недопустимый файл cookie. Этот файл cookie будет проигнорирован. Примечание: дальнейшие вхождения этой ошибки будут регистрироваться на уровне DEBUG.

Кто-нибудь может рассказать мне причину этой ошибки? Что вызывает недопустимый файл cookie? Можно ли избежать этой ошибки, если я использую другой разъем?

4b9b3361

Ответ 1

Я обнаружил, что API, развернутый на tomcat, способен захватывать файлы cookie, когда я отправляю запрос cURL, хотя было предупреждение tomcat.

curl -XPOST -H "Content-Type: application/json"  --cookie "userId=64ad960c-bb7e-48dd-8191-4f31539bc2c2,accessToken=64ad960c-bb7e-48dd-8191-4f31539bc2c2" -d '{"message":"play porcupine tree"}' http://localhost:9090/nlu/convo

Но, чтобы удалить предупреждение, пришлось обновить процессор cookie (LegacyCookieProcessor) в конфигурации tomcat (conf/context.xml)

Пример,

cat /usr/local/apache-tomcat-8.5.12/conf/context.xml 
<?xml version="1.0" encoding="UTF-8"?>
<!-- The contents of this file will be loaded for each web application -->
<Context>

    <WatchedResource>WEB-INF/web.xml</WatchedResource>
    <WatchedResource>${catalina.base}/conf/web.xml</WatchedResource>

    <!--
    <CookieProcessor className="org.apache.tomcat.util.http.Rfc6265CookieProcessor" />
    -->

    <CookieProcessor className="org.apache.tomcat.util.http.LegacyCookieProcessor" />

</Context>

Я думал, что org.apache.tomcat.util.http.Rfc6265CookieProcessor будет работать, но не нужно, LegacyCookieProcessor требуется.

Ссылка

https://tomcat.apache.org/tomcat-8.5-doc/config/cookie-processor.html#Legacy_Cookie_Processor_-_org.apache.tomcat.util.http.LegacyCookieProcessor

https://tools.ietf.org/html/rfc6265

LegacyCookieProcessor реализует строгую интерпретацию спецификаций файлов cookie. Из-за различных проблем взаимодействия с браузерами не все строгие Поведение включено по умолчанию и доступны дополнительные параметры для дальнейшего ослабления поведения этого процессора файлов cookie, если это необходимо.

Ответ 2

Fwiw: Я каким-то образом перевел браузер Chrome в действительно взволнованное состояние, заставив его отправлять искаженный файл cookie с несовпадающими цитатами: "XSRF-TOKEN=93926112-aa12-440e-8e06-02b7fbce27d5;

Одной лишь очистки куки файлов из инструментов разработчика было недостаточно, но, похоже, Clear storage с боковой панели вкладки Application это сделало.