Cài đặt bảo mật Security Headers A+ dễ như ăn kẹo
Trong quá trình phát triển phải luôn đi đôi với bảo vệ chống giặc ngoại xâm 😀 và bảo mật web cũng vậy, cấu hình Security Headers là điều bạn nên làm để tăng cường bảo mật cho website.
Trong bài viết này hãy cùng Vũ Trụ Số tìm hiểu về Security Headers cũng như cách để cấu hình để Security Headers đạt xanh điểm toàn bộ khi check với các công cụ check như securityheaders.com hay atatus
Hoặc nếu bạn có ssh bạn có thể theo đường dẫn
Sau đó khởi động lại OpenLiteSpeed bằng lệnh
Nếu bạn không thấy dòng
3. Thêm các Security Headers vào tệp cấu hình: Trong tệp cấu hình Nginx, thêm các dòng sau vào phần server block (hoặc location block) cho trang web của bạn:
Hoặc nếu bạn muốn áp dụng các Security Headers cho tất cả các trang web trên máy chủ, bạn có thể thêm các dòng trên vào phần http block trong tệp
Nếu không có lỗi, bạn có thể khởi động lại Nginx để áp dụng các thay đổi:
Sau khi hoàn tất các bước trên, máy chủ Nginx của bạn sẽ bổ sung Security Headers vào các HTTP response và cải thiện mức độ bảo mật của trang web WordPress hoặc bất kỳ ứng dụng web nào bạn đang chạy trên máy chủ.
I. Security Headers là gì?
Security Headers là một tập hợp các HTTP response headers được sử dụng để cung cấp mức độ bảo mật cao hơn cho các ứng dụng web và tránh một số lỗ hổng bảo mật phổ biến. Khi một trình duyệt web gửi yêu cầu tới một trang web, máy chủ sẽ phản hồi bằng một HTTP response, trong đó có chứa các thông tin về trang web và các headers. Các Security Headers đơn giản là các HTTP response headers cụ thể được thêm vào để cải thiện bảo mật của trang web.II. Một số Security Headers quan trọng
Một số Security Headers quan trọng và thường được sử dụng bao gồm: X-XSS-Protection: Được sử dụng để bật hoặc tắt bộ lọc chống tấn công Cross-Site Scripting (XSS) trong trình duyệt. Điều này giúp ngăn chặn các cuộc tấn công XSS bằng cách chặn việc thực thi mã độc JavaScript không mong muốn từ các nguồn không đáng tin cậy. X-Content-Type-Options: Sử dụng để ngăn trình duyệt thực hiện nhận dạng loại nội dung bằng cách chặn sự thay đổi bất hợp pháp của phần đầu nội dung (Content-Type) từ phía người tấn công. Điều này giúp ngăn chặn một số cuộc tấn công liên quan đến sự xử lý sai loại nội dung. X-Frame-Options: Được sử dụng để ngăn việc nhúng trang web trong một khung (frame) của một trang web khác. Điều này giúp bảo vệ chống tấn công clickjacking và giữ cho trang web của bạn không bị lồng vào một trang web bên ngoài không đáng tin cậy. Referrer-Policy: Xác định các thông tin về nguồn gốc (referrer) mà trình duyệt sẽ gửi khi người dùng click vào một liên kết. Điều này có thể giúp bảo vệ thông tin riêng tư của người dùng và giảm rủi ro liên quan đến lỗ hổng thông tin về nguồn gốc. Thêm các Security Headers này vào các HTTP response của trang web có thể giúp bảo vệ trang web của bạn khỏi nhiều cuộc tấn công phổ biến và cải thiện mức độ bảo mật của ứng dụng web của bạn.III. Cách cấu hình Security Headers cho WordPress
Để cấu hình Security Headers cho WordPress lên điểm A+ như hình dưới đây, bạn đơn giản chỉ cần cài thêm 1 plugin có tên là Security Headers do tác giả Joseph Mendez viết là xong, đơn giản chỉ cần cài đặt và kích hoạt là Security Headers sẽ xanh khi check với 1 số công cụ như securityheaders.com hay atatus Ngoài ra bạn cũng có thể cài plugin Headers Security Advanced & HSTS WP Ngoài ra nếu máy chủ của bạn có modulemod_headers
thì bạn có thể thêm code dưới đây vào file .htaccess
để tối ưu phần Headers Security.
1 2 3 4 5 6 |
<IfModule mod_headers.c> Header set X-XSS-Protection "1; mode=block" Header set X-Content-Type-Options "nosniff" Header always append X-Frame-Options SAMEORIGIN Header set Referrer-Policy "no-referrer-when-downgrade" </IfModule> |
IV. Cách cấu hình Security Headers trên máy chủ OpenLiteSpeed
Nếu bạn sử dụng OpenLiteSpeed bạn có thể cấu hình Security Headers như sau. Truy cập vào trình quản lý máy chủ ví dụ CyberPanel > Vào phần quản lý website ví dụ:https://IP:8090/websites/vutruso.com
sau đó click vào vHost Conf
Thêm đoạn code phía dưới vào dưới cùng của file, sau đó lưu lại.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
context / { location $DOC_ROOT/ allowBrowse 1 extraHeaders Strict-Transport-Security: max-age=31536000; includeSubDomains; preload } context / { location $DOC_ROOT/ allowBrowse 1 extraHeaders X-Content-Type-Options nosniff } context / { location $DOC_ROOT/ allowBrowse 1 extraHeaders X-XSS-Protection 1;mode=block } context / { location $DOC_ROOT/ allowBrowse 1 extraHeaders X-Frame-Options SAMEORIGIN } context / { location $DOC_ROOT/ allowBrowse 1 extraHeaders Referrer-Policy strict-origin } |
/usr/local/lsws/conf/vhosts/vutruso.com
, mở file vhost.conf
lên và thêm code bên trên vào.
Hoặc nếu bạn sử dụng Directadmin bạn có thể theo đường dẫn /usr/local/directadmin/data/templates/custom/openlitespeed_vhost.conf
Ngoài code bên trên bạn có thể khai báo 1 số tiêu đề như: Expect-CT, Feature-Policy và Content Security Policy HTTP headers thì mới đạt điểm A+ được (phần này tuỳ theo website nên bạn hãy tìm hiểu thêm để sử dụng cho phù hợp)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
context / { location $DOC_ROOT/ allowBrowse 1 extraHeaders Expect-CT enforce, max-age=21600 } context / { location $DOC_ROOT/ allowBrowse 1 extraHeaders Feature-Policy geolocation 'self'; vibrate 'none' } context / { location $DOC_ROOT/ allowBrowse 1 extraHeaders Content-Security-Policy default-src https:; font-src https: data:; img-src https: data:; script-src https:; style-src https:; } |
sudo /usr/local/lsws/bin/lswsctrl restart
là xong.
V. Cấu hình Security Headers trên máy chủ Nginx
Để cấu hình Security Headers trên máy chủ Nginx, bạn cần chỉnh sửa tệp cấu hình Nginx cho trang web của bạn. Thông thường, tệp cấu hình sẽ nằm trong thư mục/etc/nginx/conf.d/
hoặc /etc/nginx/sites-available/
. Dưới đây là các bước để thêm các Security Headers vào cấu hình Nginx:
1. Đảm bảo module headers đã được kích hoạt: Trước tiên, bạn cần đảm bảo rằng module “headers” đã được kích hoạt trong tệp cấu hình Nginx. Điều này có thể được thực hiện bằng cách kiểm tra trong tệp /etc/nginx/nginx.conf hoặc các tệp cấu hình con. Tìm dòng bên dưới để xác nhận module đã được kích hoạt:
1 2 3 4 5 6 |
http { ... include /etc/nginx/mime.types; include /etc/nginx/conf.d/*.conf; ... } |
include /etc/nginx/conf.d/*.conf;
hoặc tương tự trong tệp cấu hình, hãy thêm nó vào.
2. Thêm Security Headers: Tiếp theo, mở tệp cấu hình cho trang web của bạn (ví dụ: your_domain.conf) bằng lệnh:
1 |
sudo nano /etc/nginx/conf.d/your_domain.conf |
1 2 3 4 5 6 7 8 |
server { ... add_header X-XSS-Protection "1; mode=block"; add_header X-Content-Type-Options "nosniff"; add_header X-Frame-Options "SAMEORIGIN"; add_header Referrer-Policy "no-referrer-when-downgrade"; ... } |
/etc/nginx/nginx.conf
4. Lưu và thoát: Sau khi thêm các dòng, lưu tệp cấu hình và thoát khỏi trình soạn thảo.
5. Kiểm tra cú pháp và khởi động lại Nginx: Trước khi khởi động lại Nginx, hãy đảm bảo rằng tệp cấu hình không có lỗi cú pháp. Sử dụng lệnh sau để kiểm tra cú pháp:
1 |
sudo nginx -t |
1 |
sudo systemctl restart nginx |