Hạn chế việc viết lại nội dung của proxy bằng no-transform và HTTPS
Dùng no-transform để công bố chính sách nội dung HTTP và HTTPS để bảo vệ kết nối của trình duyệt khỏi việc trang bị sửa đổi trên đường truyền.
Một proxy chuyển đổi nội dung có thể thay đổi phản hồi trên đường tới trình duyệt: nén lại ảnh, viết lại đánh dấu hoặc chèn JavaScript hỗ trợ. Một trang hoạt động trên mạng này và nhận được đánh dấu lạ trên mạng khác có thể đang gặp chính hành vi của trung gian đó.
Đối với trang web bạn vận hành, HTTP cung cấp một chỉ thị phản hồi rõ ràng:
Cache-Control: no-transform
RFC 9111 yêu cầu trung gian nhận chỉ thị phản hồi này phải để nguyên nội dung, bất kể trung gian đó có triển khai bộ nhớ đệm hay không. Điều này liên quan đến nén lại ảnh và chèn đánh dấu, không chỉ đến việc một đối tượng có được lưu hay không.
Giữ nó cùng với chính sách bộ nhớ đệm hiện có
Nếu phản hồi đã có các chỉ thị bộ nhớ đệm, hãy thêm yêu cầu một cách có chủ đích thay vì loại bỏ phần còn lại của chính sách. Ví dụ, một tài nguyên có thể lưu đệm công khai có thể có:
Cache-Control: public, max-age=3600, no-transform
Ví dụ này giữ chính sách tươi mới một giờ đồng thời cấm chuyển đổi nội dung. no-transform không có nghĩa là no-store và không vô hiệu hóa xử lý truyền tải thông thường. Đặt nó trên các phản hồi mà nội dung gốc quan trọng, bao gồm cả phản hồi hình ảnh riêng khi thích hợp.
Chỉ thị hoạt động thông qua việc trung gian tuân thủ. Nó không ngăn cản về mặt mật mã một thiết bị mạng bỏ qua chỉ dẫn.
Bảo vệ cả đường truyền
HTTPS cung cấp cho trình duyệt một kết nối có xác thực và bảo vệ tính toàn vẹn tới đối tác TLS của nó. Một proxy của nhà mạng thông thường cho lưu lượng đã mã hóa đi qua không thể lặng lẽ chèn một script vào kết nối được bảo vệ đó. Giữ nguyên việc xác minh chứng chỉ; một proxy kiểm tra đáng tin cậy cục bộ có kết thúc TLS là một cách bố trí khác.
Phục vụ trang và các tài nguyên phụ thuộc qua HTTPS. Chuyển hướng khách truy cập HTTP sang HTTPS, và cân nhắc HSTS cho một triển khai có thể hỗ trợ nó một cách nhất quán. Chỉ chuyển hướng thì bắt đầu bằng một trao đổi HTTP không được bảo vệ đối với khách truy cập đã dùng URL HTTP; một chính sách HSTS đã học trước hoặc tải trước sẽ thay đổi lựa chọn ban đầu đó.
Chặn một script bị chèn có thể giảm các tác động hữu hình của nó, nhưng phản hồi có thể đã chứa HTML bị thay đổi hoặc URL hình ảnh bị viết lại. Thay thế một tên hàm cũ, thêm một chú thích bất thường hoặc ánh xạ một địa chỉ chèn trong quá khứ không thiết lập tính toàn vẹn nội dung cho trung gian tiếp theo.
Khi điều tra một báo cáo, hãy so sánh phản hồi nhận được với nội dung dự định của nguồn gốc và xác định nơi TLS kết thúc. Bằng chứng đó hữu ích hơn việc coi mọi script lạ là lỗi trong mã ứng dụng của chính trang web.