2015-01-21 13 views
9

CF11 đang chuẩn bị trước các giá trị của các cookie này với giao diện băm của tên ứng dụng.CFToken/CFID trong Coldfusion 11

Trong CF9, giá trị của CFID đối với tôi là dọc theo dòng: 2219 Trong CF11, những thay đổi này là Z3ir0kan93jawdd3kz38onobced8tfgn2kc3fy8i0w884gqffsn-2219

tôi cần để có thể chạy một máy chủ CF9 và CF11 trong cùng pool (trong khi chúng tôi nâng cấp), nhưng sự khác biệt về giá trị cookie có nghĩa là nếu bạn đăng nhập vào máy chủ CF9 và điều hướng đến máy chủ CF11, bạn sẽ bị đăng xuất.

Có cách nào để nhận CF11 sử dụng định dạng CF9 cho các giá trị cookie này không?

+3

Thay vào đó, bạn có thể chuyển sang sử dụng JSESSIONID không? –

+0

Có thể, nhưng điều đó có thể có nghĩa là giết chết các phiên của người dùng khi chúng tôi chuyển sang nó. – kmc

Trả lời

2

Giá trị của CFID/CFTOKEN đã được thay đổi từ giá trị số đơn giản thành chuỗi + số vì lý do bảo mật.

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

Lý do

Trong cấu hình mặc định của nó, Adobe ColdFusion sử dụng một cặp cookie tên CF_ID và CF_TOKEN để quản lý phiên người dùng. Hai cookie này chỉ được sử dụng song song với nhau - chúng không bao giờ được sử dụng riêng biệt.

Mặc dù CF_ID là tuần tự, nhưng CF_TOKEN là ngẫu nhiên và không thể đoán trước được. Vì đó là sự kết hợp của cả hai cookie được sử dụng, kết hợp kết quả cũng không thể đoán trước được.

Giải pháp

Để loại bỏ lỗi này trong thử nghiệm tuân thủ của bạn, bạn có thể cấu hình ColdFusion sử dụng định danh phiên J2EE thay vì CF_ID và CF_TOKEN.

Lưu ý: Giải pháp này không làm cho máy chủ ColdFusion của bạn kém an toàn hơn.

Vì vậy, bạn không nên để CF 11 sử dụng giá trị CF_ID kiểu cũ.

Nếu bạn sắp có CF 9 và CF 11 trong cùng một hồ bơi, trong đó các yêu cầu có thể bị trả ngẫu nhiên từ người này sang người khác, bạn sẽ gặp phải một số vấn đề khác. Tôi đã dành phần tốt hơn trong một năm chuyển đổi từ CF 8 sang CF 9 khoảng hai năm trước (vâng, vâng, tôi biết). Ví dụ: nếu bạn tình cờ sử dụng bất kỳ thành phần giao diện người dùng CF nào, bạn sẽ gặp sự cố khi yêu cầu bắt đầu trên CF X trả về HTML & JS chuyển đến CF Y, đã cập nhật các hàm JS cho tính năng đó. Chúng tôi tách tất cả chúng ra và chuyển đổi sang jQuery/jQuery UI

Chúng tôi cũng chạy vào một cái gì đó đơn giản như này:

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

getDirectoryFromPath() trả lại một giá trị chữ hoa trong 8 và giá trị thấp hơn trường hợp ở 9 (hoặc ngược lại).Chúng tôi phải cập nhật nó như thế này:

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

để có họ sử dụng tên ứng dụng tương tự và do đó, phiên làm việc.

Bạn nên chạy CF 11 trong hồ bơi riêng của mình và chạy thử nghiệm hồi quy đầy đủ chống lại nó để tìm ra những gì cần được cập nhật.

+0

Không chắc chắn làm thế nào nó thay đổi thành chuỗi + số giúp bảo mật, vì chuỗi sẽ không bao giờ thay đổi. Thay đổi để sử dụng jsession vì lợi ích của PCI không phải là tất cả những gì hấp dẫn hoặc. Những gì tôi sau là một cách để có được CF11 xử lý các cookie trong cùng một cách như CF9. Nếu điều đó không thể được thực hiện, thì cũng vậy. – kmc