Tìm hiểu về Cross-origin resource sharing (CORS)

841
26-01-2018
Tìm hiểu về Cross-origin resource sharing (CORS)

Cross-originresource sharing (viết tắt là CORS) là một tiêu chuẩn để truy cập tài nguyên web trên các tên miền khác nhau. CORS cho phép các web scripts tương tác cởi mở hơn với nội dung bên ngoài tên miền gốc, dẫn đến sự tích hợp tốt hơn giữa các dịch vụ web. Cùng Bizfly Cloud tìm hiểu những thông tin chi tiết về Cors ngay tại bài viết này nhé. 

Tổng quan về CORS

Để ngăn chặn các trang web giả mạo, các trình duyệt web thực hiện một biện pháp an ninh được gọi là same-origin policy (viết tắt là SOP). SOP cho phép các tài nguyên (như JavaScript) tương tác với các tài nguyên từ cùng một tên miền, nhưng không tương tác được với các tài nguyên từ một tên miền khác. 

Nếu không có SOP, khi người dùng vô tình truy cập một trang web độc hại, script được đặt sẵn trên này có thể truy cập được dữ liệu và thực hiện tính năng của bất kỳ trang web nào người dùng đã dùng trước đó. Chẳng hạn như thực hiện chuyển tiền, đọc email hay chụp ảnh thẻ tín dụng khi giao dịch trực tuyến. Vì lý do này, các trình duyệt hiện đại bắt buộc phải áp dụng SOP để ngăn chặn tương tác giữa các domain khác nhau.

Mặc dù SOP có hiệu quả trong việc ngăn chặn các tài nguyên từ tên miền khác nhau, nhưng nó cũng ngăn cản các tương tác hợp lệ giữa server và client có tên miền đáng tin cậy. Trong trường hợp này, CORS sẽ là giải pháp dành cho các nhà phát triển web. CORS thêm vào các HTTP headers chỉ dẫn cho trình duyệt web về các sử dụng và quản lý nội dung cross-domain. Trình duyệt sau đó sẽ cho phép hoặc từ chối truy cập vào nội dung dựa trên cấu hình bảo mật của nó.

CORS hoạt động như thế nào?

Khi một trình duyệt thực thi một script chuyển đến một tài nguyên trên một domain khác, nó request nội dung trực tiếp từ tên miền thứ hai. Tên miền thứ hai xác định xem có nên phục vụ nội dung hay không bằng cách xác nhận tên miền đầu tiên, đây là một phần của request. Tên miền thứ hai sau đó trả về nội dung hoặc thông báo lỗi trở lại trình duyệt, bỏ qua hoan toàn tên miền đầu tiên.

Tìm hiểu về Cross-origin resource sharing (CORS) - Ảnh 1.

Quy trình hoạt động của CORS

Bước 1: Một người dùng mở một tài nguyên trên một trang web chuyển đến một tên miền khác. Đây thường là tệp JavaScript, nhưng có thể bao gồm các phông chữ và tài nguyên CSS.

Bước 2: Trình duyệt của người dùng tạo kết nối đến tên miền thứ hai, thêm vào request mot HTTP header "Origin" chứa tên miền đầu tiên.

Bước 3: Tên miền thứ hai trả lời với HTTP header "Access-Control-Allow-Origin" liệt kê các tên miền được phép thực hiện yêu cầu của CORS. Ký tự đại diện ("*") cho phép tất cả các tên miền thực hiện yêu cầu.

Bước 4: Nếu tên miền đầu tiên được phép thực hiện request, tên miền thứ hai sẽ trả về nội dung được yêu cầu.

Header Access-Control-Allow-Origin được định nghĩa trong cấu hình máy chủ của tên miền thứ hai. Nếu header không chứa ký tự (*) và tên miền đầu tiên không có trong danh sách, trình duyệt sẽ hiển thị thông báo lỗi.

Ví dụ về CORS

CORS là một tính năng thiết yếu của các dịch vụ lưu trữ trực tuyến như Amazon S3. Các website sử dụng S3 làm nơi lưu trữ sẽ cấu hình S3 để cho phép các requests CORS từ tên miền trang web của họ. Khi người dùng truy cập website và chạy script, trình duyệt của họ sẽ request tới S3. Vì S3 đã được cấu hình để cho phép tên miền của website nên request hoàn thành và nội dung được gửi đến trình duyệt.

Kết luận

Các hacker luôn tìm cách phá hoại bảo mật web. Tính đến năm 2007, XSS, một trong những cách phổ biến nhất để vượt qua SOP, chiếm 84% tất cả các lỗ hổng bảo mật theo tài liệu cua Symantec. CORS cho phép các website tự do kết nối đến các dịch vụ web khác mà không làm cho người dùng của họ dễ bị tấn công.

CORS làm cho các website dễ dàng hơn trong việc phân phối nội dung cho người dùng, đồng thời tăng khả năng tương tác với các dịch vụ trực tuyến.

Theo Bizfly Cloud chia sẻ

Kể từ ngày 05/11/2018, VCCloud chính thức đổi tên thành BizFly Cloud - là nhà cung cấp các dịch vụ đám mây hàng đầu tại Việt Nam hiện nay với các dịch vụ nổi bật như: BizFly Cloud Server, BizFly CDN, BizFly Load Balancer, BizFly Pre-built Application, BizFly Business Mail, BizFly Simple Storage. Hãy tăng tốc thích nghi cho doanh nghiệp cùng các giải pháp công nghệ của BizFly Cloud tại đây.

SHARE