Một trang HTTPS tải tập lệnh qua HTTP thực hiện hai yêu cầu với hai mức bảo vệ khác nhau, và ổ khóa chỉ mô tả yêu cầu thứ nhất. Đường hầm không thay đổi điều đó, vì nó bảo vệ đường truyền chứ không phải lược đồ của chính tài nguyên. Trình duyệt đã cho bạn biết yêu cầu nào thất bại, nếu bạn đọc bảng điều khiển thay vì thanh địa chỉ. Ba bước kiểm tra đưa bạn từ một trang chỉ hoạt động một nửa đến một sửa chữa thực sự.

Đọc yêu cầu, không đọc thanh địa chỉ

Một tài liệu lấy qua HTTPS có thể tham chiếu tập lệnh, biểu định kiểu, phông chữ hoặc khung qua HTTP thường. Tham chiếu đó là một yêu cầu riêng, và chính nó là điều trình duyệt phàn nàn. Bảo vệ của tài liệu chính không lan ngược vào đó, và đường hầm mang cả hai luồng không thay đổi lược đồ nào. Vì vậy trang có thể vừa thực sự an toàn vừa thực sự hỏng cùng lúc.

Gọi tài nguyên chỉ là một tệp được nhúng không khiến việc thay thế nó trở nên vô hại.

Nếu nội dung tập lệnh không an toàn có thể bị sửa đổi trên đường truyền rồi được thực thi, nó có thể thay đổi hành vi của trang, và đó là vấn đề lớn hơn một lỗi hình thức. Hình ảnh mang rủi ro nhỏ hơn nhưng có thật khi bị sửa đổi trên đường. Ổ khóa không nói dối về bất cứ điều gì. Nó đang trả lời một câu hỏi hẹp hơn câu bạn đã hỏi.

Biết tài nguyên nào bị chặn và tài nguyên nào được nâng cấp

Trình duyệt không đối xử với mọi loại tài nguyên như nhau. hướng dẫn về nội dung hỗn hợp tách các yêu cầu được nâng cấp lên HTTPS khỏi những yêu cầu bị chặn hoàn toàn, với tập lệnh, biểu định kiểu và yêu cầu lập trình ở phía bị chặn, còn hình ảnh và phương tiện có thể được nâng cấp hoặc gắn cờ thay thế.

Chính sự khác biệt đó giải thích những báo cáo khó hiểu. Trang có tập lệnh bị chặn mất hẳn một tính năng, trong khi trang có hình ảnh được nâng cấp trông vẫn ổn và đã lặng lẽ thay đổi yêu cầu của mình. Các danh mục được ghi nhận cũng có ngoại lệ, nên đừng cho rằng mọi URL thuộc một loại nhất định sẽ được nâng cấp thành công. Hãy đọc điều bảng điều khiển nói về yêu cầu cụ thể thay vì suy luận từ phần mở rộng tệp.

Một tiện ích bị chặn không phải bằng chứng đường hầm thất bại. Đó là bằng chứng trình duyệt đã làm đúng việc của nó.

Sửa tham chiếu tại nguồn của nó

Với chủ trang web, việc sửa chữa thuộc về nơi URL không an toàn được viết: một mẫu, một biểu định kiểu, một tập lệnh lắp ghép URL, hoặc một thành phần bên thứ ba. Thay đổi địa chỉ trang hiển thị không đụng tới bất kỳ điều nào trong số đó. Tìm máy chủ trong mã nguồn và sửa mọi tham chiếu, không chỉ tham chiếu duy nhất mà bảng điều khiển tình cờ nêu tên.

Sau đó xác nhận rằng tài nguyên thực sự được phục vụ qua HTTPS với danh tính hợp lệ, vì việc đổi lược đồ không thể tạo ra một dịch vụ chưa từng được công bố ở đó.

grep -rn "http://assets.example" ./templates
curl -sSI https://assets.example/widget.js | head -n 1

Cũng hãy theo dõi các chuyển hướng, vì một tham chiếu bắt đầu bằng HTTPS vẫn có thể rơi vào đường phân phối văn bản thuần. Khi một phụ thuộc hoàn toàn không có cách phân phối an toàn, hãy xóa hoặc thay thế nó qua quy trình thay đổi thông thường thay vì phát hành một giải pháp vòng tránh. Với người dùng, hãy để các biện pháp bảo vệ của trình duyệt bật và báo cho chủ trang web URL của tài nguyên, loại của nó và thông điệp bảng điều khiển. Đừng bao giờ phát tán hướng dẫn bảo nhân viên cho phép nội dung không an toàn cho một trang, vì ngoại lệ đó sống lâu hơn sự cố đã tạo ra nó.

Kiểm tra lại trang theo cách người dùng chạm vào nó

Thực hành các thao tác tải tài nguyên theo yêu cầu, không chỉ tài liệu đầu tiên. Trang tải thêm mã, dữ liệu và bản tải xuống sau khi nhấn nút, và những yêu cầu đó thường là những yêu cầu không an toàn. Xác nhận các yêu cầu cụ thể và hành vi nhìn thấy được khi bảo vệ vẫn bật. Một bài kiểm tra bắt đầu bằng hồ sơ trình duyệt nới lỏng không thể cho bạn thấy người dùng bình thường nhìn thấy gì.

Đường hầm vẫn có việc riêng của nó, và việc đó là truy cập mạng chứ không phải tính toàn vẹn của trang.

Khi lưu lượng rời khỏi điểm cuối của đường hầm, mọi lượt tải HTTP còn lại không được lợi gì từ đường truyền. Sửa đường dẫn tài nguyên và giữ nguyên việc thực thi trong trình duyệt. Coi thêm một lớp truyền tải là cách sửa chữa cho một phụ thuộc không an toàn chính là cách một nhóm kết thúc với một tập lệnh hỗ trợ vô hiệu hóa biện pháp kiểm soát vốn đang hoạt động đúng.

Bài viết liên quan