Nội dung bài viết
Kỹ thuật tấn công bảo mật Clickjacking hay XSS (Cross Site Scripting). Là 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?
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ả. 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 đỏ.
Bảo mật website WordPress với HTTP Security Headers
Sau đây 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);
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>
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>
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>
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ả.
Toàn bộ nội dung chèn vào file .htaccess
<ifModule mod_headers.c> Header set Strict-Transport-Security "max-age=31536000" env=HTTPS Header set X-XSS-Protection "1; mode=block" Header set X-Content-Type-Options nosniff Header set X-Frame-Options DENY Header always append X-Frame-Options SAMEORIGIN Header set Referrer-Policy: no-referrer-when-downgrade </ifModule>
Vậy là PhonuiIT.com đã hướng dẫn bạn cách Bảo mật website WordPress với HTTP Security Headers.Chúc các bạn thành công.