ColdFusion MX — удалить jsessionid из URL

#java #coldfusion

#java #coldfusion

Вопрос:

в наших приложениях cfmx есть множество тегов ‘cflocation’, которые приводят к добавлению идентификаторов сеанса к URL-адресу. Наша главная задача здесь — удалить jsessionid, cfid и cftoken из URL-адреса в целях обеспечения безопасности. Мы пробовали следующее, и ни одно из них у нас не сработало: 1. ‘addtoken=no’ с тегом cflocation 2. попробовали использовать cfheader вместо cflocation.

Как нам удалить идентификаторы сеанса из URL-адреса?

спасибо, ребята, за быстрые ответы! Я постараюсь ответить на запросы здесь

  • Я попытался полностью заменить cflocation на cfheader следующим образом

<cfheader statuscode="302" statustext="Temporarily Moved"/>
<cfheader name="Location" value="destinationURL"/>

  • Мы используем файлы cookie для хранения информации о сеансе. Я могу видеть, что файлы cookie CFID, CFTOKEN, JSESSIONID успешно создаются на компьютере пользователя

  • Mitrah — Если я установлю значение ‘setclientcookie’ равным false, не будет ли по умолчанию использоваться URL? Или я неправильно это читаю?

  • Нужно ли мне каким-либо образом настроить тег ‘cfapplication’, чтобы заставить это работать

Комментарии:

1. Когда вы говорите, что использовали cfheader, вы имеете в виду, что писали свой собственный пользовательский редирект и вообще не использовали cflocation?

2. Я думал, что у меня такая же проблема, но оба ваших решения сработали. Возможно, у вас более интересная ошибка в другом месте.

Ответ №1:

Похоже, вы не используете файлы cookie для хранения вашего сеанса, но, вероятно, используете клиентские переменные. Если вы используете клиентские переменные, то CF автоматически поместит токены сеанса в URL-адрес, несмотря ни на что. В этом документе объясняется, почему.

Комментарии:

1. «использование клиентских переменных для хранения сеанса», похоже, не имеет никакого смысла. Не могли бы вы, пожалуйста, пояснить это?

2. Обязательно — чтобы отслеживать ваш сеанс на сервере CF, когда ваш компьютер отправляет другой запрос, CF должен иметь способ узнать, кто вы такой. Обычно разработчики настраивают его для хранения токенов сеанса в файле cookie в браузере. Но вы также можете выбрать отправку переменных сеанса каждый раз. Если вы используете клиентские переменные, то каждый запрос должен содержать токены сеанса, чтобы серверы CF знали, какой сеанс принадлежит вам.

3. @Ben: Извините за путаницу. Я отредактировал свой первоначальный комментарий, чтобы удалить фразу, которая вызвала путаницу.

4. Когда вы говорите «переменные клиента», вы имеете в виду переменные в клиентской области CF? r вы имеете в виду передачу dtat через URL?

Ответ №2:

Попробуйте установить setclientcookie = «false» в теге вашего приложения.