Access control allow origin là gì năm 2024

CORS viết tắt của “Cross-Origin Resource Sharing” là cơ chế bảo mật trình duyệt web ngăn chặn trang web khác truy cập tài nguyên từ nguồn khác. Khi một trang web truy cập tài nguyên từ nguồn khác, trình duyệt yêu cầu CORS để kiểm tra xem truy cập đó có được phép hay không. Giúp ngăn chặn các cuộc tấn công CSRF – kẻ tấn công lợi dụng quyền truy cập của người dùng.

Access control allow origin là gì năm 2024
Cors là gì?

Cách thức hoạt động của Cors

Khi trình duyệt gửi yêu cầu đến một domain khác, request sẽ kèm theo header gọi là “origin” tự động thêm bởi trình duyệt và không thể thay đổi. Header này xác định nguồn gốc của yêu cầu.

Origin bao gồm ba phần:

  • Giao thức/Protocol: (HTTP/HTTPS)
  • Máy chủ/Host: server/domain
  • Cổng/Port: Nếu là 80 (mặc định), không cần thiết.

Server kiểm tra xem origin của người dùng có hợp lệ không. Nếu hợp lệ, server sẽ gửi response kèm theo header Access-Control-Allow-Origin, xác định xem client có được phép hay không, sau đó trình duyệt sẽ tiếp tục xử lý request. Access-Control-Allow-Origin liệt kê các tên miền được phép sử dụng CORS. Ký tự * cho phép mọi domain khác thực hiện yêu cầu. Tuy nhiên, thường coi là không an toàn trừ khi API được sử dụng cho mục đích công khai và mọi người đều được phép truy cập.

Khi Không có Access-Control-Allow-Origin hay giá trị không hợp lệ thì trình duyệt tự động báo lỗi.

Vai trò của Cors

CORS có vai trò quan trọng trong việc phát triển ứng dụng web, cho phép trang web tương tác và chia sẻ dữ liệu an toàn mà không cần iFrame hoặc JSONP. Giúp các trang web độc lập tương tác hiệu quả và an toàn. CORS giúp giải quyết vấn đề bảo mật trong các tình huống như vậy, đồng thời hỗ trợ phát triển ứng dụng web phức tạp.

Access control allow origin là gì năm 2024
Vai trò của Cors là gì?

CORS ngăn chặn tấn công từ xa (XSS và CSRF), bảo vệ dữ liệu nhạy cảm và quản lý phân quyền bằng cách kiểm soát truy cập tài nguyên từ các nguồn không liên quan.

Các lỗi phát sinh từ sự cố Cors

Máy chủ tạo header ACAO từ Origin header

Để cung cấp quyền truy cập vào tên miền khác, một số ứng dụng duy trì danh sách miền được phép yêu cầu. Các ứng dụng khác có thể cho phép truy cập từ mọi miền để tránh lỗi và duy trì chức năng. Một cách thực hiện là đọc Origin header từ yêu cầu và xác nhận yêu cầu origin được phép.

Lỗi khi phân tích Origin headers

Các ứng dụng thường sử dụng danh sách trắng để xác định những origin được phép truy cập từ nhiều nguồn khác nhau. Khi có yêu cầu CORS, origin được cung cấp sẽ được kiểm tra so với danh sách trắng, nếu khớp, quyền truy cập sẽ được cấp. Tuy nhiên, khi triển khai CORS origin whitelists, có thể xảy ra lỗi, đặc biệt là khi cho phép truy cập từ tất cả các miền con và miền chưa tồn tại, dẫn đến cấp phép truy cập cho các miền không mong muốn.

Origin null trong Whitelisted

Origin header hỗ trợ giá trị null trong các tình huống đặc biệt, như chuyển hướng Cross-origin, yêu cầu từ dữ liệu tuần tự hóa, yêu cầu sử dụng giao thức file, và yêu cầu Cross-origin trong môi trường sandboxed. Một số ứng dụng có thể sử dụng giá trị origin null trong danh sách trắng để phát triển ứng dụng cục bộ. Tuy nhiên, cần lưu ý rằng kẻ tấn công có thể sử dụng giá trị null trong Origin header để tạo yêu cầu Cross-origin và có thể gây ra rủi ro an ninh.

Khai thác XSS qua Cors

Tạo liên kết đáng tin cậy giữa hai nguồn gốc mặc dù CORS được cấu hình “strict”. Kẻ tấn công có thể sử dụng CORS để truy cập thông tin nhạy cảm từ trang web tin cậy, thường bằng cách thêm mã JavaScript thông qua tấn công tệp lệnh chéo trang (XSS).

Cấu hình Cors kém gây vỡ TLS

Kẻ tấn công có thể lợi dụng cấu hình CORS để thực hiện cuộc tấn công chặn lưu lượng truy cập của người dùng. Quy trình bao gồm việc chèn chuyển hướng và phản hồi giả mạo, điều này cho phép kẻ tấn công truy cập và lấy dữ liệu nhạy cảm từ trang web tin cậy của người dùng. Cuộc tấn công này có thể thành công ngay cả khi trang web đó sử dụng HTTPS và có các biện pháp bảo mật cao.

Thiếu thông tin xác thực trong Cors và mạng nội bộ

Các cuộc tấn công CORS thường dựa trên sự phản hồi của header. Khi không có header phản hồi, trình duyệt từ chối gửi cookie. Nếu trang web thuộc mạng nội bộ và có tiêu chuẩn bảo mật thấp, đây có thể là cơ hội cho kẻ tấn công tìm lỗ hổng và truy cập dữ liệu.

Cors ngăn chặn các cuộc tấn công như thế nào?

  • Cấu hình Cross-origin request một cách chính xác
  • Chỉ duyệt quyền truy cập cho các trang website tin cậy
  • Hạn chế whitelist null
  • Không nên sử dụng ký tự đại diện thuộc mạng nội bộ
  • Các máy chủ web tự động sử dụng các biện pháp bảo vệ dữ liệu nhạy cảm tránh yêu cầu giả mạo từ bất kỳ Origin

Khi khách hàng thuê dịch vụ VPS hoặc thuê máy chủ giá rẻ tại LANIT, sẽ được tặng Firewall chống DDoS mạnh mẽ kèm nhiều biện pháp bảo mật giúp dữ liệu của bạn được an toàn, ổn định.

Kết luận

Trên đây là tổng quan Cors là gì? LANIT hy vọng có thể giúp ích cho các bạn trong việc tìm hiểu. Đừng quên theo dõi LANIT để cập nhật nhiều kiến thức thú vị hơn và hãy để lại bình luận để LANIT giúp bạn giải đáp mọi thắc mắc nhé!