2011-11-14 7 views
5

Tôi muốn cho phép ứng dụng khách thực hiện yêu cầu JSON tên miền chéo đến máy chủ dữ liệu trung tâm. Các máy khách và máy chủ sẽ nằm trên các miền khác nhau.Có an toàn khi sử dụng cài đặt "Access-Control-Allow-Origin: *" trên máy chủ và sử dụng cookie dựa trên phiên cùng một lúc không?

Để tránh xung quanh "Không cho phép xuất xứ null bởi Access-Control-Allow-Origin". lỗi, tôi có máy chủ được đặt là:

Access-Control-Allow-Origin: * 

tiêu đề.

Tôi thấy ở đây (http://www.w3.org/wiki/CORS_Enabled) rằng tên miền chéo chỉ nên được sử dụng cho "dữ liệu công khai không yêu cầu xác thực dựa trên cookie hoặc phiên".

Không an toàn để sử dụng xác thực dựa trên phiên/cookie khi sử dụng tiêu đề Access-Control-Allow-Origin: *? Nếu không phải vì sao?

Cảm ơn bạn.

Trả lời

3

Có bộ quy tắc CORS của Access-Control-Allow-Origin: * không phải là toàn bộ chính sách Nguồn gốc chính xác, và có thể là an toàn.

Có tiêu đề này được đặt trên mỗi trang cho phép unauthenticated resource-requests. Cookie xác thực không được bao gồm hoàn toàn với các yêu cầu này, vì vậy không thể sử dụng XHR chéo trang để cho phép nói; đọc email của bạn hoặc đọc mã thông báo CSRF trên miền từ xa - bởi vì các yêu cầu này sẽ yêu cầu cookie hoặc mã thông báo mang.

+0

Cách này hoạt động như thế nào khi trình duyệt sẽ không cho phép truy cập vào tài nguyên cần thông tin xác thực? Không thể sử dụng chuỗi "*" cho tài nguyên có hỗ trợ bằng chứng xác thực. https://www.w3.org/TR/cors/#resource-requests. Tôi nhận ra đây là một câu trả lời cũ, không phải là trường hợp trong '11? – bayotop

+1

@bayotop bạn chính xác, cập nhật. Trong phòng thủ của tôi, điều này đã được đăng trong năm 2011. – rook