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.
Thay vào đó, bạn có thể chuyển sang sử dụng JSESSIONID không? –
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