Tôi đã đọc khoảng CORS và tôi nghĩ việc triển khai vừa đơn giản vừa hiệu quả.Chia sẻ tài nguyên gốc (CORS) - Tôi có thiếu gì đó ở đây không?
Tuy nhiên, trừ khi tôi bỏ lỡ điều gì đó, tôi nghĩ có một phần lớn bị thiếu trong thông số kỹ thuật. Theo tôi hiểu, đó là trang web nước ngoài quyết định, dựa trên nguồn gốc của yêu cầu (và tùy chọn bao gồm thông tin đăng nhập), cho phép truy cập vào tài nguyên của nó hay không. Điều này là tốt.
Nhưng điều gì sẽ xảy ra nếu mã độc trên trang muốn đăng thông tin nhạy cảm của người dùng lên trang web nước ngoài? Các trang web nước ngoài rõ ràng là sẽ xác thực yêu cầu. Do đó, một lần nữa nếu tôi không bỏ lỡ một cái gì đó, CORS thực sự làm cho nó dễ dàng hơn để ăn cắp thông tin nhạy cảm.
Tôi nghĩ rằng nó sẽ có ý nghĩa hơn nhiều nếu trang web gốc cũng có thể cung cấp danh sách bất biến của các máy chủ mà trang của nó được phép truy cập.
Vì vậy, trình tự mở rộng sẽ là:
- Cung cấp một trang với danh sách các máy chủ CORS thể chấp nhận được (abc.com, xyz.com, vv)
- Trang muốn làm một yêu cầu XHR để abc. com - trình duyệt cho phép điều này vì nó nằm trong danh sách được phép và quá trình xác thực là như bình thường
- Trang muốn yêu cầu XHR tới toxic.com - yêu cầu bị từ chối cục bộ (tức là bởi trình duyệt) vì máy chủ không có trong danh sách.
Tôi biết rằng mã độc hại vẫn có thể sử dụng JSONP để thực hiện công việc bẩn thỉu của mình, nhưng tôi đã nghĩ rằng việc triển khai hoàn chỉnh CORS sẽ ngụ ý việc đóng thẻ tập lệnh nhiều trang web.
Tôi cũng đã xem thông số CORS chính thức (http://www.w3.org/TR/cors) và không thể tìm thấy bất kỳ đề cập nào về vấn đề này.
Điểm chính của tôi không phải là quá nhiều sự kết thúc của các lỗ hổng hiện tại, đúng hơn là thực tế là có vẻ như (với tôi ít nhất) là một lỗ hổng lớn trong thông số CORS. –