2015-01-21 5 views
9

CF11 добавляет значения этих файлов cookie с тем, что выглядит хешем имени приложения.CFToken/CFID в Coldfusion 11

В CF9 значение CFID для меня по линии: 2219 В CF11, это изменение будет Z3ir0kan93jawdd3kz38onobced8tfgn2kc3fy8i0w884gqffsn-2219

Мне нужно, чтобы иметь возможность запускать сервер CF9 и CF11 в том же пул (пока мы делаем обновление), но различия в значениях cookie означают, что если вы войдете на сервер CF9 и перейдете на сервер CF11, вы выйдете из системы.

Есть ли способ получить CF11 для использования формата CF9 для этих значений cookie?

+3

Можете ли вы переключиться на использование JSESSIONID? –

+0

Возможно, это может означать убийство сеансов пользователя, когда мы переключаемся на него. – kmc

ответ

2

Значение CFID/CFTOKEN было изменено с простого числового значения на строку + числовое значение по соображениям безопасности.

http://helpx.adobe.com/coldfusion/kb/predictable-cookie-session-ids-reported.html

Причина

В конфигурации по умолчанию, Adobe ColdFusion использует пару печений имени CF_ID и CF_TOKEN управлять пользовательскими сеансами. Эти два куки используются только в тандеме друг с другом - они никогда не используются отдельно.

Несмотря на то, что CF_ID является последовательным, CF_TOKEN является случайным и непредсказуемым. Поскольку это комбинация обоих файлов cookie, которые используются, полученная комбинация также непредсказуема.

Решение

Чтобы устранить эту ошибку в тестировании соответствия, вы можете настроить ColdFusion использовать J2EE сессии идентификаторы вместо CF_ID и CF_TOKEN.

Примечание: Это решение не делает ваш сервер ColdFusion более или менее безопасным.

Таким образом, в ваших интересах, чтобы CF 11 использовал числовое значение CF_ID старого стиля.

Если у вас есть CF 9 и CF 11 в одном пуле, где запросы могут случайно отскакивать от одного к другому, вы столкнетесь с рядом других проблем. Я потратил большую часть года на переход от CF 8 к CF 9 около двух лет назад (да, да, я знаю).

Например, если вы используете какие-либо компоненты интерфейса CF, у вас возникнут проблемы, когда запрос, начинающийся с CF X, обрабатывается HTML & JS отправляется в CF Y, который обновил функции JS для этой функции. Мы рваные их все и преобразуется в JQuery/JQuery UI

Мы также столкнулись с чем-то же просто, как это:

this.name = HASH(getDirectoryFromPath(getCurrentTemplatePath()));

getDirectoryFromPath() возвращенного значение верхнего регистра в 8 и строчной значение в 9 (или наоборот).Мы должны были обновить его до этого:

this.name = HASH(Lcase(getDirectoryFromPath(getCurrentTemplatePath())));

для того, чтобы их использовать то же имя приложения и, следовательно, сессия.

Вам будет лучше работать с CF 11 в своем собственном пуле и выполнить полный регрессионный тест против него, чтобы выяснить, что нужно обновлять.

+0

Не уверен, как он меняется на строку + числовой, помогает в безопасности, так как строка никогда не изменится. Переход на использование jsession для PCI не является также привлекательным. То, что мне нужно, это способ заставить CF11 обрабатывать файлы cookie так же, как CF9. Если это невозможно, то пусть будет так. – kmc

Смежные вопросы