Theo mặc định, CORS không bao gồm cookie trên các yêu cầu xuất xứ chéo. Điều này khác với các kỹ thuật có nguồn gốc chéo khác như JSON-P. JSON-P luôn bao gồm các cookie có yêu cầu và hành vi này có thể dẫn đến một lớp các lỗ hổng được gọi là giả mạo yêu cầu chéo trang hoặc CSRF.
Để giảm khả năng xảy ra lỗ hổng CSRF trong CORS, CORS yêu cầu cả máy chủ và máy khách phải thừa nhận rằng có thể bao gồm cookie theo yêu cầu. Làm điều này làm cho cookie trở thành một quyết định chủ động, thay vì một cái gì đó xảy ra thụ động mà không có sự kiểm soát nào.
Mã khách hàng phải thiết lập các withCredentials
tài sản trên XMLHttpRequest
để true
nhằm cho phép.
Tuy nhiên, tiêu đề này là không đủ. Máy chủ phải trả lời với Access-Control-Allow-Credentials
tiêu đề. Đáp ứng với tiêu đề này true
có nghĩa là máy chủ cho phép cookie (hoặc thông tin đăng nhập của người dùng khác) được đưa vào các yêu cầu xuất xứ chéo.
Bạn cũng cần đảm bảo trình duyệt của bạn không chặn cookie của bên thứ ba nếu bạn muốn các yêu cầu được chứng thực nguồn gốc chéo hoạt động.
Lưu ý rằng bất kể bạn đang thực hiện các yêu cầu có cùng nguồn gốc hoặc xuất xứ chéo, bạn cần bảo vệ trang web của mình khỏi CSRF (đặc biệt nếu yêu cầu của bạn bao gồm cookie).