Tối ưu Security Header là một trong những bước quan trọng giúp nâng cao bảo mật cho website, đồng thời cải thiện điểm đánh giá bảo mật trên các công cụ kiểm tra như Qualys SSL Labs. Đặc biệt, việc thiết lập Security Header đạt chuẩn A+ không chỉ giúp ngăn chặn các nguy cơ tấn công phổ biến như clickjacking, XSS hay sniffing mà còn xây dựng lòng tin cho người dùng khi truy cập website của bạn.
Trong bài viết này, chúng tôi sẽ hướng dẫn chi tiết cách tối ưu Security Header trên ba nền tảng máy chủ phổ biến nhất hiện nay: LiteSpeed, Apache và Nginx. Qua đó, bạn sẽ biết cách cấu hình các header quan trọng như Content-Security-Policy, Strict-Transport-Security, X-Frame-Options và nhiều header khác một cách chính xác và hiệu quả. Việc áp dụng đúng các bước này không chỉ giúp website của bạn an toàn hơn mà còn góp phần nâng cao thứ hạng SEO nhờ cải thiện trải nghiệm người dùng và độ tin cậy của trang. Hãy cùng khám phá cách tối ưu Security Header đạt chuẩn A+ ngay hôm nay để bảo vệ website của bạn tốt nhất!

Link kết quả trang Quicksite tại đây!
Security Headers là gì?
Security Headers là các tiêu đề HTTP được gửi từ máy chủ đến trình duyệt nhằm tăng cường bảo mật cho website. Chúng giúp ngăn chặn các cuộc tấn công phổ biến như Cross-Site Scripting (XSS), Clickjacking, và tấn công giả mạo (CSRF). Một số Security Headers phổ biến bao gồm Content-Security-Policy, X-Frame-Options, X-Content-Type-Options, Strict-Transport-Security và Referrer-Policy.

Việc sử dụng Security Headers đúng cách giúp bảo vệ dữ liệu người dùng và đảm bảo trang web hoạt động an toàn hơn. Ví dụ, Content-Security-Policy giới hạn nguồn tài nguyên được phép tải trên trang, giảm nguy cơ mã độc tấn công. Strict-Transport-Security buộc trình duyệt chỉ kết nối qua HTTPS, tăng tính bảo mật khi truyền dữ liệu.
Đối với quản trị viên web và nhà phát triển, việc cấu hình Security Headers là bước quan trọng trong bảo mật website. Các công cụ kiểm tra bảo mật thường đánh giá mức độ an toàn dựa trên việc có sử dụng các tiêu đề này hay không. Do đó, tích hợp Security Headers vào hệ thống giúp nâng cao uy tín trang web, cải thiện trải nghiệm người dùng và giảm thiểu rủi ro bị tấn công mạng.
Công cụ kiểm tra Security Header
Công cụ kiểm tra Security Header là một giải pháp quan trọng giúp bảo vệ website khỏi các nguy cơ tấn công mạng bằng cách đánh giá các tiêu đề bảo mật HTTP. Bạn có thể truy cập https://securityheaders.com/ để kiểm tra nhanh chóng và chính xác các header bảo mật trên trang web của mình. Việc sử dụng công cụ này giúp phát hiện các thiếu sót trong cấu hình bảo mật như Content-Security-Policy, X-Frame-Options, Strict-Transport-Security và nhiều tiêu đề quan trọng khác.

Khi các Security Header được thiết lập đúng cách, website của bạn sẽ tăng cường khả năng chống lại các cuộc tấn công như clickjacking, XSS hay man-in-the-middle. Đây là bước cần thiết để bảo vệ dữ liệu người dùng và duy trì uy tín thương hiệu trên môi trường mạng. Công cụ kiểm tra Security Header cung cấp báo cáo chi tiết, dễ hiểu giúp quản trị viên nhanh chóng điều chỉnh cấu hình bảo mật phù hợp. Đừng bỏ qua công cụ miễn phí này nếu bạn muốn nâng cao an toàn cho website của mình. Truy cập ngay https://securityheaders.com/ để kiểm tra và cải thiện bảo mật hiệu quả.
Hiểu chuyên sâu hơn về Security Header
Tiêu đề bảo mật HTTP rất quan trọng để bảo vệ website khỏi các cuộc tấn công như XSS, SQL injection, clickjacking, v.v. Khi bạn truy cập trang web, trình duyệt nhận các tiêu đề phản hồi từ máy chủ, chứa thông tin về trạng thái, bộ nhớ đệm và hướng dẫn xử lý nội dung. Những tiêu đề này giúp tăng cường bảo mật và quản lý giao tiếp với trang web. Có sáu tiêu đề bảo mật chính nên được áp dụng. Lưu ý, các tiêu đề này áp dụng toàn cục trên máy chủ; nếu muốn áp dụng riêng cho một số tệp, hãy đặt trong khối location (nginx) hoặc filesMatch (apache) để tránh ghi đè tiêu đề toàn cục.
HTTP Strict Transport Security (HSTS)
HSTS buộc trình duyệt chỉ sử dụng kết nối HTTPS khi truy cập website, ngăn chặn hoàn toàn truy cập qua HTTP không an toàn. Để kích hoạt HSTS:
- Trên Apache, thêm dòng sau vào file cấu hình site (ví dụ
/etc/apache2/sites-enabled/example.conf
):
Header set Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"
- Trên Nginx, thêm:
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload";
Sau đó khởi động lại dịch vụ Apache hoặc Nginx để áp dụng.
Content Security Policy (CSP)
CSP giúp ngăn chặn các cuộc tấn công XSS và tiêm dữ liệu bằng cách chỉ cho phép trình duyệt tải nội dung từ nguồn đáng tin cậy. Ví dụ cấu hình CSP cơ bản:
- Apache:
Header always set Content-Security-Policy "default-src 'self'; font-src *; img-src * data:; script-src *; style-src *;"
- Nginx:
add_header Content-Security-Policy "default-src 'self'; font-src *; img-src * data:; script-src *; style-src *;";
X-XSS-Protection
Header này kích hoạt bộ lọc chống tấn công XSS trên trình duyệt, ngăn chặn các tập lệnh độc hại tải lên trang web.
- Apache:
Header set X-XSS-Protection "1; mode=block"
- Nginx:
add_header X-XSS-Protection "1; mode=block";
X-Frame-Options
Ngăn chặn tấn công clickjacking bằng cách cấm hoặc giới hạn việc chèn trang web vào iframe.
- Cấu hình phổ biến
SAMEORIGIN
cho phép iframe từ cùng nguồn:
Apache:
Header always set X-Frame-Options "SAMEORIGIN"
Nginx:
add_header X-Frame-Options "SAMEORIGIN";
X-Content-Type-Options
Ngăn trình duyệt đoán sai kiểu nội dung (MIME sniffing), giúp tránh các lỗi bảo mật do tải sai kiểu dữ liệu.
- Apache:
Header always set X-Content-Type-Options "nosniff"
- Nginx:
add_header X-Content-Type-Options nosniff;
Referrer-Policy
Quản lý thông tin trang gốc khi trình duyệt gửi yêu cầu đến trang khác, giúp bảo vệ dữ liệu người dùng.
- Apache:
Header always set Referrer-Policy "strict-origin"
- Nginx:
add_header Referrer-Policy "strict-origin";
Permissions-Policy
Cho phép kiểm soát các API và tính năng trình duyệt như vị trí, microphone, camera…
Ví dụ cấu hình giới hạn hầu hết ngoại trừ chế độ toàn màn hình:
- Apache:
Header always set Permissions-Policy "geolocation=(),midi=(),sync-xhr=(),microphone=(),camera=(),magnetometer=(),gyroscope=(),fullscreen=(self),payment=()"
- Nginx:
add_header Permissions-Policy "geolocation=(),midi=(),sync-xhr=(),microphone=(),camera=(),magnetometer=(),gyroscope=(),fullscreen=(self),payment=()";
Lưu ý quan trọng:
- Khi muốn áp dụng các header này cho từng file cụ thể, cần đặt dòng lệnh trong khối
location
(Nginx) hoặcfilesMatch
(Apache). - Sau khi chỉnh sửa cấu hình, luôn khởi động lại dịch vụ web để thay đổi có hiệu lực.
- Tùy theo đặc thù website, bạn nên điều chỉnh các giá trị header phù hợp nhằm đảm bảo cả bảo mật và trải nghiệm người dùng.
Việc thiết lập đúng các HTTP Security Headers là bước quan trọng giúp nâng cao mức độ an toàn cho website của bạn trước nhiều loại tấn công phổ biến hiện nay. Hãy bắt đầu áp dụng ngay hôm nay để bảo vệ dữ liệu và người dùng một cách tốt nhất.
Ví dụ về trường hợp thêm Security Header vào thì trang web của bạn bị lỗi hiển thị
Bạn đang gặp lỗi CSS hoặc JS khi thêm các header bảo mật vào website, nguyên nhân thường là do Content-Security-Policy (CSP) thiết lập quá chặt chẽ hoặc không phù hợp với nguồn tài nguyên mà trang web của bạn đang sử dụng.
Phân tích vấn đề
Header bạn đang dùng
add_header Content-Security-Policy "default-src 'self'; font-src *; img-src * data:; script-src *; style-src *";
default-src 'self'
: chỉ cho phép tải tài nguyên từ chính domain.font-src *
: cho phép font từ mọi nguồn.img-src * data:
: cho phép ảnh từ mọi nguồn và data URI.script-src *
: cho phép tải script từ mọi nguồn.style-src *
: cho phép style từ mọi nguồn.
Mặc dù có vẻ mở rộng (*
), nhưng có thể vẫn không đủ hoặc chưa phù hợp với cách tải tài nguyên thực tế trên trang.
Các header khác không ảnh hưởng trực tiếp tới CSS/JS, nhưng:
X-Content-Type-Options nosniff;
ngăn trình duyệt đoán kiểu MIME, nếu server gửi sai Content-Type sẽ gây lỗi.Referrer-Policy "strict-origin"
không ảnh hưởng tới CSS/JS.Permissions-Policy
không ảnh hưởng.
Nguyên nhân phổ biến gây lỗi CSS/JS khi dùng CSP
- Inline scripts hoặc styles bị chặn nếu CSP không cho phép.
- Script hoặc style được load từ domain không được liệt kê trong CSP.
- Sử dụng
eval()
hoặc tương tự, bị cấm nếu CSP không cho phép'unsafe-eval'
. - Sai MIME type do
nosniff
. - Resource bị thay đổi URL hoặc domain CDN không được cấp phép.
Cách khắc phục
Bước 1: Kiểm tra Console trình duyệt
Mở DevTools (F12) và xem phần Console để biết lỗi CSP cụ thể báo gì. Ví dụ:
- Bị chặn inline script hoặc style?
- Bị chặn tải file từ domain nào?
Bước 2: Điều chỉnh CSP phù hợp
Ví dụ nếu bạn dùng inline style hoặc script, thêm 'unsafe-inline'
:
add_header Content-Security-Policy "default-src 'self'; font-src *; img-src * data:; script-src * 'unsafe-inline' *; style-src * 'unsafe-inline'";
Lưu ý: 'unsafe-inline'
giảm mức độ an toàn, chỉ nên dùng tạm thời để kiểm tra.
Bước 3: Thêm domain CDN hoặc bên thứ ba
Nếu bạn load script/css/fonts từ CDN như:
- cdn.example.com
- fonts.googleapis.com
- ajax.googleapis.com
Cần thêm vào CSP:
script-src 'self' cdn.example.com ajax.googleapis.com;
style-src 'self' cdn.example.com fonts.googleapis.com 'unsafe-inline';
font-src 'self' fonts.gstatic.com;
img-src 'self' data: cdn.example.com;
Bước 4: Kiểm tra MIME type trên server
Đảm bảo server trả đúng Content-Type cho CSS và JS để nosniff
không gây lỗi.
Ví dụ CSP phù hợp cho website phổ biến
add_header Content-Security-Policy "
default-src 'self';
script-src 'self' https://ajax.googleapis.com 'unsafe-inline';
style-src 'self' https://fonts.googleapis.com 'unsafe-inline';
font-src 'self' https://fonts.gstatic.com;
img-src 'self' data:;
";
Tóm tắt
Vấn đề | Giải pháp |
---|---|
Lỗi CSS/JS do CSP chặn inline hoặc domain | Thêm 'unsafe-inline' hoặc domain CDN vào script-src , style-src |
Lỗi MIME do nosniff | Đảm bảo server trả đúng Content-Type |
Lỗi do thiếu quyền tải resource | Mở rộng CSP cho các domain cần thiết |
Không rõ lỗi | Xem Console trình duyệt để biết chi tiết |
Ví dụ về cách thêm Security Headers của FlyingPress trên NGINX
FlyingPress là plugin cache top #1 trên máy chủ dùng NGINX cũng giống như plugin cache LiteSpeed Cache trên là top #1 trên máy chủ Litespeed của họ.

Dưới đây là ví dụ cấu hình NGINX cho FlyingPress, bao gồm phần thêm các Security Headers tiêu chuẩn để tăng cường bảo mật khi phục vụ cache file .html.gz
:
location ~* \.html\.gz$ {
gzip off;
brotli off;
# FlyingPress cache headers
add_header x-flying-press-cache HIT;
add_header x-flying-press-source "Web Server";
add_header cache-control "no-cache, must-revalidate, max-age=0";
add_header CDN-Cache-Control "max-age=2592000";
add_header Cache-Tag $host;
# Content headers
add_header Content-Encoding gzip;
add_header Content-Type "text/html; charset=UTF-8";
# Security Headers
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" always;
add_header X-XSS-Protection "1; mode=block" always;
add_header X-Frame-Options "SAMEORIGIN" always;
add_header X-Content-Type-Options "nosniff" always;
add_header Referrer-Policy "strict-origin" always;
add_header Permissions-Policy "geolocation=(), midi=(), sync-xhr=(), microphone=(), camera=(), magnetometer=(), gyroscope=(), fullscreen=(self), payment=()" always;
add_header Content-Security-Policy "default-src 'self'; font-src *; img-src * data:; script-src * 'unsafe-inline'; style-src * 'unsafe-inline'" always;
}
# Biến và điều kiện kiểm tra cache FlyingPress
set $flying_press_cache 1;
set $flying_press_url "/wp-content/cache/flying-press/$http_host/$request_uri/index.html.gz";
set $flying_press_file "$document_root/wp-content/cache/flying-press/$http_host/$request_uri/index.html.gz";
if ($request_method = POST) {
set $flying_press_cache 0;
}
if ($is_args) {
set $flying_press_cache 0;
}
if ($http_cookie ~* "(wp\-postpass|wordpress_logged_in|comment_author|woocommerce_cart_hash|edd_items_in_cart)") {
set $flying_press_cache 0;
}
if (!-f "$flying_press_file") {
set $flying_press_cache 0;
}
if ($flying_press_cache = 1) {
rewrite .* "$flying_press_url" last;
}
Ghi chú:
- Các header security được thêm với
always
để đảm bảo luôn được gửi trong mọi trường hợp. - Phần cấu hình cache của FlyingPress vẫn giữ nguyên như gốc, chỉ thêm các header bảo mật.
- Bạn có thể điều chỉnh các giá trị trong
Content-Security-Policy
vàPermissions-Policy
theo nhu cầu thực tế của website.
Ví dụ cài Security Header cho máy chủ dùng LiteSpeed (sửa file .htacess)
Dưới đây là ví dụ cách cài đặt Security Header cho máy chủ sử dụng LiteSpeed bằng cách chỉnh sửa file .htaccess
. Việc này giúp tăng cường bảo mật cho website, ngăn chặn các tấn công phổ biến như XSS, clickjacking hay tấn công injection.
<IfModule LiteSpeed>
# Bảo vệ khỏi tấn công clickjacking
Header always set X-Frame-Options "SAMEORIGIN"
# Ngăn chặn XSS
Header set X-XSS-Protection "1; mode=block"
# Ngăn chặn MIME sniffing
Header set X-Content-Type-Options "nosniff"
# Chính sách bảo mật nội dung (CSP)
Header set Content-Security-Policy "default-src 'self'; script-src 'self' 'unsafe-inline'; style-src 'self' 'unsafe-inline';"
# Chính sách Referrer
Header set Referrer-Policy "no-referrer-when-downgrade"
# Chính sách kiểm soát truy cập
Header set Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"
</IfModule>
Bạn chỉ cần thêm đoạn mã này vào đầu file .htaccess
trên máy chủ LiteSpeed. Các header này giúp bảo vệ website trước các nguy cơ bảo mật phổ biến, cải thiện độ tin cậy và uy tín với người dùng cũng như các công cụ tìm kiếm. Đặc biệt, việc sử dụng Security Header chuẩn còn hỗ trợ SEO hiệu quả hơn khi trang web có tốc độ tải nhanh và an toàn. Hãy kiểm tra kỹ sau khi cài đặt để đảm bảo website hoạt động ổn định.
Lời kết
Việc tối ưu Security Header là bước quan trọng không thể thiếu để bảo vệ website khỏi các nguy cơ tấn công mạng phổ biến như XSS, clickjacking hay sniffing. Khi cấu hình đúng và đủ các header như Content-Security-Policy, Strict-Transport-Security, X-Frame-Options và các header khác trên máy chủ LiteSpeed, Apache hoặc Nginx, website không chỉ an toàn hơn mà còn cải thiện điểm đánh giá bảo mật trên các công cụ kiểm tra như Qualys SSL Labs.
Điều này giúp nâng cao uy tín, tạo niềm tin với người dùng và góp phần tăng thứ hạng SEO nhờ cải thiện trải nghiệm và độ tin cậy trang. Đặc biệt, việc áp dụng Security Header đạt chuẩn A+ còn giúp giảm thiểu rủi ro bị tấn công, bảo vệ dữ liệu quan trọng. Hãy bắt đầu kiểm tra và tối ưu ngay hôm nay bằng các công cụ trực tuyến để đảm bảo website của bạn vận hành an toàn và hiệu quả nhất. Đây là cách đơn giản nhưng mang lại lợi ích lâu dài cho sự phát triển bền vững của website.