2012-05-27 48 views
5

$ .cookie không đọc cookie đã được đặt trước bởi phản hồi của máy chủ.

Tôi có thể đọc cookie đã được đặt bằng $ .cookie().

Tôi có thể thấy tất cả cookie miền được đặt bằng Trình phát triển web của Firefox sẽ được thêm vào.
Ngoài ra, phía máy chủ có thể thấy cookie yêu cầu, do đó trình duyệt chắc chắn có chúng.

Tôi đã thử nghiệm với thời gian hết hạn không có kết quả.

+0

Nếu bạn so sánh cookie kỹ lưỡng thì sao? Nếu họ cư xử khác nhau - có một số khác biệt – zerkms

Trả lời

6

Vấn đề là phía máy chủ đang gửi cookie với HttpOnly thiết như đã mô tả ở đây: http://en.wikipedia.org/w/index.php?title=HTTP_cookie#HttpOnly_cookie

Cookies gửi theo cách này không thể truy cập qua document.cookie. Điều này thường được sử dụng để giúp bảo vệ giá trị cookie chống lại các cuộc tấn công XSS có thể xảy ra trên trang web của bạn.

Chỉnh sửa: Bạn không đề cập đến công nghệ bạn đang sử dụng ở phía máy chủ để đặt cookie. Trong trường hợp bạn đang sử dụng PHP, liên kết này liệt kê các cách có thể các HttpOnly cờ có thể được thiết lập:

https://www.owasp.org/index.php/HttpOnly#Using_PHP_to_set_HttpOnly

1

UPDATE: Tôi đã sai trong câu trả lời ban đầu của tôi (xem dưới đây) ... Trang tiếp tục xuống cây đường dẫn có thể đọc các cookie cấp cao hơn, do đó các đường dẫn không phải khớp chính xác. Để lại câu trả lời ban đầu của tôi trong trường hợp người khác phạm phải sai lầm tương tự. Vấn đề của tôi là do tôi đặt cookie từ javascript, sau đó cố sửa đổi phía máy chủ cookie. Cookie được nhắm mục tiêu theo máy chủ có đường dẫn "/", vì vậy cookie có đường dẫn "/ mypages" không bị thay đổi.

$ .cookie chỉ có thể đọc cookie theo đường dẫn tài liệu hiện tại, vì vậy nếu trang của bạn là> mysite.com/mypages/mypage.aspx, máy chủ sẽ đặt đường dẫn là "/" khi đặt cookie, > nhưng $ .cookie sẽ cố gắng đọc từ đường dẫn "/ mypages" và không đọc cookie. Tôi chỉ chạy> vào vấn đề này bản thân mình. Nếu bạn không có các đường dẫn khác nhau như thế này thì có thể đây không phải là vấn đề của bạn.

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