Hộp cát của trình duyệt

Mariko Kosaka

Để chống lại các cuộc tấn công, nhà phát triển cần giảm thiểu các lỗ hổng và thêm các tính năng bảo mật vào ứng dụng. May mắn thay, trên web, trình duyệt cung cấp nhiều tính năng bảo mật. Một số tính năng được cung cấp để nhà phát triển chọn sử dụng, còn một số tính năng được bật theo mặc định để bảo vệ người dùng.

Ý tưởng về "hộp cát"

trình duyệt dưới dạng hộp cát
Hình: Trình duyệt dưới dạng hộp cát

Các trình duyệt web hiện đại được xây dựng dựa trên ý tưởng về "hộp cát". Hộp cát là một cơ chế bảo mật dùng để chạy ứng dụng trong một môi trường hạn chế. Giống như hộp cát thực tế tại sân chơi, nơi trẻ em có thể tạo ra bất cứ thứ gì chúng muốn trong phạm vi cho phép mà không làm bừa bộn ở nơi khác, mã xử lý ứng dụng có quyền tự do thực thi trong một môi trường bị hạn chế. Ví dụ: JavaScript có thể thêm và sửa đổi các phần tử trên trang nhưng có thể bị hạn chế truy cập vào một tệp JSON bên ngoài. Nguyên nhân là do một tính năng hộp cát có tên là cùng nguồn gốc

Tại sao cần có một hộp cát?

Mỗi ngày, người dùng web tải mã tuỳ ý xuống và thực thi mã đó trên máy tính hoặc điện thoại của họ nhiều lần. Nếu có người nói với bạn "Chào! Tải xuống và chạy ứng dụng này!", bạn có thể tạm dừng để suy nghĩ xem ứng dụng đó có đến từ một nguồn đáng tin cậy hay không, đọc thông tin về nhà cung cấp ứng dụng hoặc kiểm tra kỹ các bài đánh giá. Còn khi có người gửi cho bạn một URL kèm theo nội dung "xem bài đăng này trên blog" thì sao? Có lẽ bạn sẽ nhấp vào đó mà không đặt ra những câu hỏi như "Trang web này sẽ tải xuống loại JavaScript nào?".

Hộp cát của trình duyệt là tính năng chính giúp việc duyệt web trở nên dễ dàng hơn bằng cách giúp việc chạy mã tuỳ ý trở nên an toàn hơn.

Đảm bảo tính bảo mật ngay từ trong thiết kế

Nếu trình duyệt đang tạo hộp cát cho từng ứng dụng web, thì chúng ta có cần quan tâm đến vấn đề bảo mật không? Chắc chắn rồi!

Trước hết, các tính năng hộp cát không phải là biện pháp bảo vệ hoàn hảo. Mặc dù các kỹ sư trình duyệt đã nỗ lực hết mình, nhưng trình duyệt vẫn có thể có lỗ hổng và kẻ tấn công luôn tìm cách vượt qua hộp cát (chẳng hạn như với Tấn công Spectre).

Đôi khi, hộp cát có thể cản trở việc tạo ra trải nghiệm web tuyệt vời. Ví dụ: trình duyệt có thể chặn yêu cầu tìm nạp đến một hình ảnh được lưu trữ trên một miền khác. Bạn có thể chia sẻ tài nguyên trên nhiều miền bằng cách bật tính năng Chia sẻ tài nguyên trên nhiều nguồn gốc (viết tắt là CORS), nhưng nếu không thực hiện cẩn thận, bạn có thể để lộ tài nguyên cho mọi người khác trên web, về cơ bản là huỷ bỏ hộp cát.

Tóm tắt

Bạn chỉ có thể đạt được trải nghiệm web an toàn nếu tính năng bảo mật được tích hợp vào thiết kế của ứng dụng và thiết kế mạnh mẽ bắt đầu bằng việc tìm hiểu các tính năng hiện có. Hai hướng dẫn tiếp theo sẽ đi sâu vào CORS và chính sách cùng nguồn gốc.