2011-12-13 17 views
7

Tôi cần đọc cookie được tạo trên https://sub1.domain.com từ http://origin.domain.com sử dụng Coldfusion. Tôi đã nhìn thấy rất nhiều thông tin về cách tạo cookie trong tên miền phụ bằng CFCOOKIE, nhưng tôi không biết cách truy cập cookie đã tồn tại.Đọc các cookie trên Miền chéo (Cross-Sub-Domain) trong ColdFusion (HTTPS)

Liệu HTTPS có thực hiện điều này không?

THÊM: Câu trả lời được chọn bên dưới sẽ giải quyết chính xác câu hỏi như được nói ở trên. Trong trường hợp của tôi, nó không hoạt động. Tôi nên giải thích: Cookie trên sub1.domain.com được tạo bởi một sản phẩm của bên thứ ba được lưu trữ - không được viết bằng coldfusion và không nằm trong tầm kiểm soát của tôi.

Trả lời

6

Điều này thực sự khá dễ dàng. Khi bạn tạo cookie, hãy cung cấp cho nó thuộc tính miền bằng miền của bạn. Phần quan trọng cần nhớ là nó PHẢI có một dấu chấm đứng đầu.

<cfcookie name="mycookie" value="myvalue" domain=".mydomain.com" path="/" /> 

Dấu chấm đầu cho trình duyệt gửi cookie đến bất kỳ tên miền phụ nào của mydomain.com bao gồm sub.mydomain.com và blah.mydomain.com.

Sau đó, bạn sẽ có thể truy cập các tập tin cookie từ bất kỳ tên miền phụ cũng giống như bạn sẽ bất kỳ cookie khác:

<cfset thevalue = cookie.mycookie /> 

Bạn nên làm điều này như một thực hành tốt nhất để hỗ trợ các trình duyệt cũ.

Đây là tuyên bố từ RFC2109: Cơ chế quản lý nhà nước HTTP mà có thể ảnh hưởng đến trình duyệt cũ

"Để ngăn chặn vi phạm bảo mật hoặc tính riêng tư có thể, một user agent từ chối cookie (sẽ không lưu trữ thông tin của nó) nếu … Giá trị cho thuộc tính Miền không chứa dấu chấm được nhúng hoặc không bắt đầu bằng một dấu chấm. "

Tôi tin rằng đây sẽ bị thay thế bởi RFC 2965: Cơ chế quản lý nhà nước HTTP trong đó nêu

"Domain = giá trị BẮT BUỘC Giá trị của thuộc tính miền xác định tên miền mà cookie có giá trị.. Nếu giá trị được chỉ định rõ ràng không bắt đầu bằng dấu chấm, tác nhân người dùng sẽ cung cấp một dấu chấm hàng đầu ".

Điều này giải thích tại sao nó có thể đang hoạt động cho bạn, có lẽ là một trình duyệt hiện đại. Tôi vẫn đề nghị bạn thêm nó.

+0

Thực ra, tôi đã thử điều này - dấu chấm đầu tiên không cần thiết khi tôi thực hiện. –

+0

HTTPS có thể sẵn sàng cookie HTTP, nhưng không phải là cách khác xung quanh, phải không? – Henry

+1

Các bài kiểm tra tôi vừa thử làm việc theo cả hai cách. Có lẽ nếu bạn muốn giới hạn nó chỉ https, bạn có thể xác định an toàn = "true" –

Các vấn đề liên quan