Hướng dẫn
Khắc phục lỗi thiếu tiêu đề bảo mật HTTP cho website
Việc thiếu các tiêu đề bảo mật HTTP thiết yếu khiến ứng dụng web dễ bị tấn công qua cross-site scripting (XSS), clickjacking, hạ cấp giao thức và đánh cắp phiên đăng nhập.
Kích hoạt Strict-Transport-Security có thời hạn một năm kèm preload, thiết lập Content-Security-Policy nghiêm ngặt, thêm nosniff và cấu hình frame-ancestors 'none'.
Chẩn đoán và kiểm tra các tiêu đề phản hồi hiện tại
Trước khi thay đổi cấu hình máy chủ, hãy kiểm tra các tiêu đề HTTP đang phản hồi bằng lệnh curl -IL hoặc công cụ chẩn đoán chuyên dụng. Xác định chính xác vị trí xử lý chứng chỉ TLS và thêm tiêu đề: tại máy chủ gốc (Nginx, Apache), proxy ngược hay CDN edge để tránh việc tiêu đề bị loại bỏ giữa chừng.
Thiết lập Strict-Transport-Security (HSTS) an toàn theo giai đoạn
HSTS buộc trình duyệt chỉ kết nối với website thông qua giao thức HTTPS bảo mật, loại bỏ hoàn toàn nguy cơ tấn công trung gian (MitM). Trong giai đoạn thử nghiệm ban đầu, hãy đặt max-age=86400 (1 ngày). Sau khi xác nhận mọi tên miền phụ và tài nguyên hoạt động ổn định trên HTTPS, chuyển sang môi trường sản xuất với max-age=31536000; includeSubDomains; preload.
Xây dựng chính sách Content Security Policy (CSP) chặt chẽ
CSP kiểm soát chính xác những nguồn nào được phép thực thi mã lệnh trong trình duyệt. Bắt đầu bằng tiêu đề Content-Security-Policy-Report-Only để ghi nhận lỗi vi phạm mà không làm gián đoạn tính năng của trang. Áp dụng default-src 'self', sử dụng mã ngẫu nhiên nonce hoặc mã băm SHA-256 thay cho 'unsafe-inline', và vô hiệu hóa plugin với object-src 'none'.
Ngăn chặn tấn công Clickjacking, MIME-sniffing và rò rỉ referrer
Ngăn chặn kẻ xấu nhúng website của bạn vào các thẻ iframe ẩn bằng cách khai báo frame-ancestors 'none' trong CSP kết hợp X-Frame-Options: DENY cho các trình duyệt cũ. Sử dụng X-Content-Type-Options: nosniff để ngăn trình duyệt tự ý đoán kiểu tệp thực thi và áp dụng Referrer-Policy: strict-origin-when-cross-origin khi chuyển tiếp liên kết ngoài.
Cấu hình trên máy chủ web và kiểm tra hoạt động
Trên máy chủ Nginx, khai báo các quy tắc trong khối server HTTPS bằng lệnh add_header kèm tham số always (ví dụ: add_header X-Content-Type-Options "nosniff" always;) để tiêu đề luôn được gửi ngay cả khi xảy ra lỗi 4xx hoặc 5xx. Với Apache, sử dụng Header always set. Kiểm tra cú pháp bằng nginx -t và tải lại cấu hình an toàn.
Tiêu đề bảo mật: Các biện pháp kiểm soát HTTPS, CSP, chống clickjacking, MIME, referrer và cô lập trình duyệt.
Bắt đầu kiểm tra miễn phí →