Một trang có nội dung hỗn hợp khi HTML ban đầu của trang được tải qua kết nối HTTPS an toàn, nhưng các tài nguyên khác (chẳng hạn như hình ảnh, video, biểu định kiểu và tập lệnh) lại được tải qua một kết nối HTTP không an toàn. Tên này nói đến sự kết hợp giữa nội dung HTTP và HTTPS trên một trang.
Việc yêu cầu các tài nguyên phụ sử dụng giao thức HTTP không an toàn sẽ làm giảm khả năng bảo mật của trang, vì các yêu cầu này dễ bị tấn công trên đường dẫn, trong đó kẻ tấn công nghe trộm kết nối mạng và xem hoặc sửa đổi thông tin giao tiếp giữa 2 bên. Bằng cách sử dụng những tài nguyên này, kẻ tấn công có thể theo dõi người dùng và thay thế nội dung trên trang web và trong trường hợp có nội dung hỗn hợp đang hoạt động, chúng có thể nắm toàn quyền kiểm soát trang, chứ không chỉ các tài nguyên không an toàn.
Mặc dù nhiều trình duyệt báo cáo cảnh báo nội dung hỗn hợp cho người dùng, nhưng thường là quá muộn: các yêu cầu không an toàn đã được thực hiện và tính bảo mật của trang đã bị xâm phạm.
Hầu hết các trình duyệt hiện chặn nội dung hỗn hợp vì lý do bảo mật. Hãy thay đổi các yêu cầu về nội dung không an toàn thành nội dung bảo mật để đảm bảo trang của bạn tiếp tục tải đúng cách.
Hai loại nội dung hỗn hợp
Có hai loại nội dung hỗn hợp: chủ động và thụ động.
Nội dung hỗn hợp thụ động, bao gồm hình ảnh, video và âm thanh, không tương tác với phần còn lại của trang. Vì vậy, cuộc tấn công xen giữa sẽ bị hạn chế trong những gì có thể thực hiện nếu chặn hoặc thay đổi nội dung đó.
Nội dung hỗn hợp đang hoạt động tương tác với toàn bộ trang. Các tệp này bao gồm tập lệnh, biểu định kiểu, iframe và mọi mã khác mà trình duyệt có thể tải xuống và thực thi. Các cuộc tấn công vào nội dung hỗn hợp đang hoạt động cho phép kẻ tấn công làm bất cứ điều gì đối với trang.
Nội dung hỗn hợp thụ động
Nội dung hỗn hợp thụ động có ít rủi ro hơn nội dung hỗn hợp đang hoạt động, nhưng rủi ro đó vẫn tồn tại. Ví dụ, kẻ tấn công có thể:
- Chặn các yêu cầu HTTP đối với hình ảnh trên trang web của bạn và hoán đổi hoặc thay thế các hình ảnh đó.
- Thay thế hình ảnh trên các nút để người dùng nhầm lẫn và ví dụ: xoá nội dung họ định lưu.
- Làm xấu trang web của bạn bằng cách thay thế hình ảnh bằng nội dung khiêu dâm.
- Thay thế hình ảnh sản phẩm bằng quảng cáo cho một nội dung khác.
Ngay cả khi kẻ tấn công không thay đổi nội dung trang web của bạn, chúng vẫn có thể theo dõi người dùng thông qua các yêu cầu nội dung hỗn hợp. Chúng cũng có thể cho biết người dùng truy cập trang nào và sản phẩm nào họ xem dựa trên hình ảnh hoặc các tài nguyên khác mà trình duyệt tải.
Nếu có nội dung hỗn hợp thụ động, thì hầu hết các trình duyệt đều chỉ báo trên thanh địa chỉ rằng trang không an toàn, ngay cả khi chính trang đó được tải qua HTTPS. Bạn có thể quan sát hành vi này trong bản minh hoạ này.
Cho đến gần đây, nội dung hỗn hợp thụ động đã được tải trong tất cả các trình duyệt, vì việc chặn nội dung này sẽ khiến nhiều trang web bị hỏng. Tình hình này hiện đang bắt đầu thay đổi, vì vậy, bạn cần phải cập nhật mọi phiên bản của nội dung hỗn hợp trên trang web của mình.
Trong một số trường hợp, Chrome tự động nâng cấp nội dung hỗn hợp thụ động. Điều này có nghĩa là nếu một thành phần đã được mã hoá cứng dưới dạng HTTP nhưng có sẵn qua HTTPS, thì trình duyệt sẽ tải phiên bản HTTPS. Nếu không có phiên bản bảo mật, tài sản sẽ không tải được.
Bất cứ khi nào Chrome phát hiện nội dung hỗn hợp hoặc tự động nâng cấp nội dung hỗn hợp thụ động, Chrome sẽ ghi lại các thông báo chi tiết đến thẻ Vấn đề trong Công cụ cho nhà phát triển để tư vấn cho bạn cách khắc phục vấn đề cụ thể.
![Thẻ Vấn đề trong Công cụ của Chrome cho nhà phát triển hiển thị thông tin chi tiết về vấn đề cụ thể liên quan đến nội dung hỗn hợp và cách khắc phục](https://web.dev/static/articles/what-is-mixed-content/image/issues-tab-chrome.jpg?authuser=5&hl=vi)
Nội dung hỗn hợp đang hoạt động
Nội dung hỗn hợp chủ động gây ra mối đe doạ lớn hơn nội dung hỗn hợp thụ động. Kẻ tấn công có thể chặn và viết lại nội dung đang hoạt động, sử dụng nội dung đó để giành toàn quyền kiểm soát trang hoặc thậm chí toàn bộ trang web của bạn. Điều này cho phép họ thay đổi bất kỳ khía cạnh nào của trang, bao gồm cả việc hiển thị nội dung khác nhau, đánh cắp mật khẩu người dùng hoặc thông tin đăng nhập khác, đánh cắp cookie phiên của người dùng hoặc chuyển hướng người dùng đến một trang web hoàn toàn khác.
Vì rủi ro của nội dung hỗn hợp đang hoạt động là rất cao, nên hầu hết các trình duyệt đã chặn loại nội dung này theo mặc định để bảo vệ người dùng, nhưng hành vi sẽ khác nhau giữa các nhà cung cấp và phiên bản trình duyệt.
Bản minh hoạ này cho thấy các ví dụ về nội dung hỗn hợp đang hoạt động. Tải ví dụ qua HTTP để xem nội dung bị chặn khi bạn tải ví dụ qua HTTPS. Nội dung bị chặn cũng được trình bày chi tiết trong thẻ Vấn đề trong Công cụ cho nhà phát triển.
![Thẻ Vấn đề trong Công cụ của Chrome cho nhà phát triển hiển thị thông tin chi tiết về vấn đề cụ thể liên quan đến nội dung hỗn hợp và cách khắc phục](https://web.dev/static/articles/what-is-mixed-content/image/the-issues-tab-chrome-de-0eea9d1e99f11.jpg?authuser=5&hl=vi)
Thông số kỹ thuật của nội dung hỗn hợp
Các trình duyệt tuân theo quy cách nội dung hỗn hợp, trong đó xác định các danh mục nội dung có thể chặn và nội dung có thể chặn (không bắt buộc).
Tài nguyên đủ điều kiện là nội dung có thể tuỳ ý chặn "khi rủi ro cho phép sử dụng tài nguyên đó vì nội dung hỗn hợp sẽ cao hơn nguy cơ làm hỏng một số phần đáng kể trên web". Đây là một tập hợp nội dung hỗn hợp thụ động.
Tất cả nội dung hỗn hợp không có thể chặn (không bắt buộc) sẽ được coi là có thể chặn và phải bị trình duyệt chặn.
Trong những năm gần đây, mức độ sử dụng HTTPS đã tăng đáng kể và đã trở thành giao thức mặc định rõ ràng trên web. Điều này giúp các trình duyệt hiện có thể cân nhắc việc chặn tất cả nội dung hỗn hợp, ngay cả những loại tài nguyên phụ được xác định trong thông số kỹ thuật của nội dung hỗn hợp là có thể tuỳ ý chặn.
Các trình duyệt cũ hơn
Một số khách truy cập có thể sử dụng các trình duyệt cũ. Các phiên bản trình duyệt khác nhau từ các nhà cung cấp khác nhau xử lý nội dung hỗn hợp theo cách khác nhau. Tệ nhất là các trình duyệt và phiên bản cũ hơn hoàn toàn không chặn bất kỳ nội dung hỗn hợp nào, điều này không an toàn cho người dùng.
Bằng cách tải tất cả tài nguyên một cách an toàn và khắc phục các vấn đề về nội dung hỗn hợp, bạn đảm bảo rằng nội dung của mình hiển thị được và bảo vệ người dùng khỏi nội dung nguy hiểm mà các trình duyệt cũ có thể không chặn được.