2015-01-21 6 views
9

CF11 setzt die Werte dieser Cookies mit einem Hashwert des Anwendungsnamens voraus.CFToken/CFID in Coldfusion 11

In CF9, wird der Wert von CFID für mich ist entlang der Linien von 2219 In CF11, diese Änderungen Z3ir0kan93jawdd3kz38onobced8tfgn2kc3fy8i0w884gqffsn-2219

Ich muss in der Lage zu laufen einen CF9 und CF11-Server im gleichen sein Pool (während wir das Upgrade durchführen), aber die Unterschiede in den Cookie-Werten bedeuten, dass Sie sich abmelden, wenn Sie sich auf einem CF9-Server anmelden und zu einem CF11-Server navigieren.

Gibt es eine Möglichkeit, CF11 das CF9-Format für diese Cookie-Werte zu verwenden?

+3

Können Sie stattdessen zur Verwendung von JSESSIONIDs wechseln? –

+0

Möglicherweise, aber das könnte bedeuten, die Sitzungen des Benutzers zu beenden, wenn wir darauf umschalten. – kmc

Antwort

2

Der Wert von CFID/CFTOKEN wurde aus Sicherheitsgründen von einem einfachen numerischen Wert in einen String + numerischen Wert geändert.

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

Grund

In der Standardkonfiguration verwendet Adobe Coldfusion ein Paar von Cookies CF_ID und CF_TOKEN namens Benutzersitzungen zu verwalten. Diese beiden Cookies werden immer nur zusammen verwendet - sie werden niemals separat verwendet.

Obwohl CF_ID sequenziell ist, ist CF_TOKEN zufällig und nicht vorhersagbar. Da die Kombination beider Cookies verwendet wird, ist die resultierende Kombination auch nicht vorhersagbar.

Lösung

Um diesen Fehler in Ihren Compliance-Tests zu vermeiden, können Sie Coldfusion verwenden J2EE Session-IDs statt CF_ID und CF_TOKEN konfigurieren.

Hinweis: Diese Lösung macht Ihren ColdFusion Server nicht mehr oder weniger sicher.

Es ist also nicht in Ihrem Interesse, dass CF 11 den numerischen CF_ID-Wert im alten Stil verwendet.

Wenn Sie CF 9 und CF 11 im selben Pool haben, in dem Anfragen von einem zum anderen wechseln können, stoßen Sie auf eine Reihe anderer Probleme. Ich habe den größten Teil eines Jahres damit verbracht, vor etwa zwei Jahren von CF 8 zu CF 9 zu wechseln (ja, ja, ich weiß). Wenn Sie beispielsweise eine CF-UI-Komponente verwenden, treten Probleme auf, wenn eine auf CF X gerenderte Anfrage mit HTML & JS an CF Y gesendet wird, die JS-Funktionen für diese Funktion aktualisiert hat. Wir riss sie alle aus und konvertiert jQuery/jQuery UI

wir auch in etwas so Einfaches wie das lief:

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

getDirectoryFromPath() zurück einen oberen Fallwert in 8 und Klein Wert in 9 (oder umgekehrt).Wir hatten es so zu aktualisieren:

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

, um sie die gleichen Anwendungsnamen verwenden zu haben und daher Sitzung.

Sie sollten besser CF 11 in seinem eigenen Pool ausführen und einen vollständigen Regressionstest ausführen, um herauszufinden, was aktualisiert werden muss.

+0

Nicht sicher, wie es sich ändert, um zu string + numeric zu wechseln, Sicherheit, da sich die Zeichenfolge nie ändern wird. Die Verwendung von Jsession für PCI ist auch nicht so attraktiv. Was ich möchte, ist ein Weg, um CF11 die Cookies auf die gleiche Weise wie CF9 behandeln zu lassen. Wenn das nicht möglich ist, dann sei es so. – kmc