Chủ Nhật, 17 tháng 11, 2024

CORS là gì?

 

CORS (Cross-Origin Resource Sharing) là một cơ chế bảo mật trên web cho phép một trang web tại một nguồn (domain) yêu cầu tài nguyên từ một nguồn khác. Đây là cách trình duyệt kiểm soát các yêu cầu HTTP từ một nguồn khác với nguồn gốc của trang được tải.

Tại sao cần CORS?

Trình duyệt web giới hạn các yêu cầu HTTP giữa các nguồn gốc khác nhau để ngăn chặn các cuộc tấn công bảo mật, chẳng hạn như CSRF (Cross-Site Request Forgery). Tuy nhiên, nhiều ứng dụng web cần truy cập tài nguyên từ các nguồn khác nhau, như lấy dữ liệu từ một API bên ngoài, và do đó cơ chế CORS được đưa vào để cho phép điều này một cách an toàn và có kiểm soát.

Cách hoạt động của CORS

  1. Khi một yêu cầu từ một nguồn khác được thực hiện (cross-origin), trình duyệt sẽ thêm các tiêu đề HTTP đặc biệt để xác định nguồn gốc của yêu cầu.
  2. Máy chủ phản hồi sẽ kiểm tra các tiêu đề này và quyết định xem có cho phép yêu cầu từ nguồn gốc này hay không, bằng cách thêm các tiêu đề CORS (ví dụ: Access-Control-Allow-Origin).
  3. Nếu máy chủ cho phép, trình duyệt sẽ cho phép yêu cầu hoàn tất và trả về dữ liệu cho trang web.

Ví dụ về tiêu đề CORS:

  • Access-Control-Allow-Origin: Xác định các nguồn được phép truy cập. Ví dụ:
    • Access-Control-Allow-Origin: * cho phép mọi nguồn gốc.
    • Access-Control-Allow-Origin: https://example.com chỉ cho phép từ https://example.com.

Các khái niệm liên quan:

  • Simple Requests (Yêu cầu đơn giản): Được cho phép mà không cần thêm kiểm tra trước.
  • Preflight Requests (Yêu cầu thăm dò trước): Trình duyệt gửi một yêu cầu OPTIONS trước để xác minh rằng máy chủ cho phép loại yêu cầu này, áp dụng cho các yêu cầu không đơn giản (như với các phương thức khác GET, POST hoặc có các tiêu đề tùy chỉnh).

Ví dụ thực tế:

Giả sử bạn có một ứng dụng web trên http://example1.com cần gửi yêu cầu tới API trên http://api.example2.com. Nếu api.example2.com không bật CORS và cho phép http://example1.com, trình duyệt sẽ chặn yêu cầu này để đảm bảo bảo mật.

Tóm lại, CORS là cách trình duyệt cho phép hoặc ngăn chặn các yêu cầu giữa các nguồn để bảo vệ tài nguyên web, đồng thời cho phép truy cập có kiểm soát khi cần.

0 nhận xét:

Đăng nhận xét

Bài viết mới

Giới Thiệu Gumroad và Cơ Hội Đăng Ký Nội Dung Đặc Biệt Của Tôi

     Trong thế giới kỹ thuật số ngày nay, việc dễ dàng tiếp cận các tài nguyên học tập và công cụ hỗ trợ là rất quan trọng. Đó chính là lý d...

Bài đăng