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

Mariko Kosaka

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

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 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 bị hạn chế. Tương tự như hộp cát thực tế tại một sân chơi nơi trẻ có thể tạo mọi thứ mình muốn trong phạm vi ranh giới mà không gây trở ngại cho nơi khác, mã xử lý ứng dụng có quyền tự do thực thi trong 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 tệp JSON bên ngoài. Lý do là tính năng hộp cát có tên là same-origin

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

Hằng ngày, người dùng web tải mã tuỳ ý xuống và thực thi trên máy tính hoặc điện thoại nhiều lần. Nếu có ai đó nói với bạn "Xin chào! Hãy tải 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, hãy đọ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 URL nói "hãy xem bài đăng trên blog này" thì sao? Có thể bạn sẽ nhấp vào nút này 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 duyệt web mượt mà 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 từ trong thiết kế

Nếu trình duyệt đang tạo hộp cát cho mỗi ứng dụng web, chúng ta có nên quan tâm đến bảo mật không? Bạn hoàn toàn có thể!

Trước hết, các tính năng hộp cát không phải là tấm khiên hoàn hảo. Mặc dù các kỹ sư trình duyệt luôn nỗ lực, nhưng các trình duyệt vẫn có thể có các lỗ hổng bảo mật 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 bóng ma).

Hộp cát đôi khi 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 đối với 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 (gọi tắt là CORS). Tuy nhiên, nếu không cẩn thận, bạn có thể để người khác thấy một tài nguyên trên web, nghĩa là về cơ bản là huỷ bỏ hộp cát.

Tóm tắt

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