Bảo mật website WordPress với HTTP Security Headers một cách đơn giản.
Bạn đã bao giờ nghe về các kỹ thuật tấn công bảo mật như Clickjacking hay XSS (Cross Site Scripting) chưa? Chúng là những phương thức tấn công bảo mật rất phổ biến và nguy hiểm cho website. Tuy nhiên, chúng lại có thể bị ngăn chặn hiệu quả bởi HTTP Security Headers. Vậy HTTP Security Headers là gì? Làm thế nào để bảo mật website WordPress của bạn với HTTP Security Headers? Hãy dành vài phút để cùng WP Căn bản tìm hiểu ngay sau đây.
Tham khảo thêm:
- Cấu hình HSTS cho blog/ website thông qua file .htaccess
- Bảo mật WordPress hiệu quả bằng file .htaccess
HTTP Security Headers là gì?
HTTP Security Headers hiểu đơn giản là các chỉ thị được thêm vào HTTP Response Header để giúp tăng cường khả năng bảo mật cho website. HTTP Security Headers bao gồm các chỉ thị cơ bản như:
- Referrer-Policy: cho phép một trang web kiểm soát lượng thông tin mà trình duyệt web bao gồm với các điều hướng ra ngoài trang web đó.
- Strict-Transport-Security: hay còn gọi là HSTS, bắt buộc người dùng phải truy cập website bằng giao thức bảo mật HTTPS.
- X-Frame-Options: cho trình duyệt web biết bạn có muốn cho phép trang web của mình được đóng khung hay không. Bằng cách ngăn chặn trình duyệt web đóng khung trang web, bạn có thể bảo vệ nó chống lại các cuộc tấn công như Clickjacking.
- X-Xss-Protection: đặt cấu hình cho các bộ lọc tập lệnh cross-site được tích hợp vào hầu hết các trình duyệt web. Nó được dùng để ngăn chặn các cuộc tấn công XSS.
- X-Content-Type-Options: ngăn chặn trình duyệt web cố gắng xác định loại nội dung (css, js, image…) và buộc nó phải tuân theo kiểu nội dung đã được khai báo.
- Content-Security-Policy: là biện pháp hiệu quả để bảo vệ trang web của bạn khỏi các cuộc tấn công XSS. Bằng các nguồn nội dung được phê duyệt trong danh sách trắng (whitelisting), bạn có thể ngăn trình duyệt tải nội dung độc hại.
- Feature-Policy: cho phép một trang web kiểm soát các tính năng và API có thể được sử dụng trong trình duyệt web.
Làm sao để kiểm tra HTTP Security Headers của website?
Rất đơn giản. Các bạn có thể xem HTTP Security Headers thông qua Chrome Developer Tools (bấm phím F12 => chọn tab Network => load lại website => click vào link website trong cột Name):
Hoặc sử dụng một website có tên là Security Headers. Tất cả những gì bạn cần làm là nhập địa chỉ vào khung rồi click nút Scan.
Chờ trong giây lát để hệ thống phân tích và trả về kết quả. Nó sẽ trông tương tự như thế này:
Những mục đã đạt sẽ được đánh dấu bằng màu xanh lá. Những mục chưa đạt sẽ được đánh dấu bằng màu đỏ.
Hướng dẫn bảo mật website WordPress với HTTP Security Headers
Trong khuôn khổ của bài viết này, tôi sẽ hướng dẫn cho các bạn cách để bảo mật website WordPress với 4 HTTP Security Headers phổ biến nhất. Riêng với HSTS (HTTP Strict Transport Security), các bạn có thể xem trong link tham khảo ở phần đầu của bài viết.
1. Referrer-Policy
Thêm đoạn code sau đây vào cuối file functions.php
của theme hoặc child theme mà bạn đang sử dụng:
add_action('send_headers', function(){ | |
header("Referrer-Policy: no-referrer-when-downgrade"); | |
}, 1); |
view rawfunctions.php hosted with ❤ by GitHub
Xóa cache web (nếu bạn có sử dụng plugin tạo cache) và kiểm tra kết quả.
2. X-Content-Type-Options
Thêm đoạn code sau đây vào cuối file .htaccess
trong thư mục gốc (nơi cài đặt WordPress):
<IfModule mod_headers.c> | |
Header set X-Content-Type-Options nosniff | |
</IfModule> |
view raw.htaccess hosted with ❤ by GitHub
nosniff
là tùy chọn duy nhất dành cho X-Content-Type-Options.
Lưu lại và kiểm tra kết quả.
3. X-Frame-Options
Thêm đoạn code sau đây vào cuối file .htaccess
trong thư mục gốc (nơi cài đặt WordPress):
<IfModule mod_headers.c> | |
Header always append X-Frame-Options SAMEORIGIN | |
</IfModule> |
view raw.htaccess hosted with ❤ by GitHub
Tùy chọn SAMEORIGIN
dùng để xác định rằng trang web chỉ có thể được hiển thị ở trong một iframe tạo bởi ai đó ở cùng một nguồn (same origin) với nó.
Lưu lại và kiểm tra kết quả.
4. X-XSS-Protection
Thêm đoạn code sau đây vào cuối file .htaccess
trong thư mục gốc (nơi cài đặt WordPress):
<IfModule mod_headers.c> | |
Header set X-XSS-Protection "1; mode=block" | |
</IfModule> |
view raw.htaccess hosted with ❤ by GitHub
Tùy chọn 1; mode=block
khi được kích hoạt sẽ vô hiệu hoàn toàn việc hiển thị trang web nếu nó bị tấn công theo phương thức Cross Site Scripting (XSS).
Lưu lại và kiểm tra kết quả.
Lưu ý: nếu bạn không nhìn thấy file .htaccess
trong File Manager của cPanel, hãy tham khảo bài viết “Hiển thị file htaccess trong cPanel một cách đơn giản“.
Thật đơn giản phải không nào? Chúc các bạn thành công.
Mọi thắc mắc và góp ý liên quan đến việc bảo mật website WordPress với HTTP Security Headers xin vui lòng gửi vào khung bình luận bên dưới để được giải đáp.