Security Headers trong WordPress – Tấm khiên phòng thủ cực mạnh mà ai cũng nên bật

Security Headers là lớp bảo vệ ở tầng HTTP giúp WordPress chống lại nhiều kiểu tấn công như XSS, Clickjacking, MITM, code injection, content injection, và rất nhiều mối nguy phổ biến khác. Đây là một trong những cách hardening đơn giản nhưng mang lại hiệu quả cực kỳ lớn, đặc biệt cho các site WordPress thường xuyên bị bot và hacker quét.

Security Headers trong WordPress – Tấm khiên phòng thủ cực mạnh mà ai cũng nên bật

Chỉ cần cấu hình đúng một vài header, bạn có thể chặn hàng tá cuộc tấn công trước khi chúng tiếp cận code của bạn.

Security Headers là gì?

Security Headers là các HTTP header được server gửi cùng với mỗi response. Chúng hướng dẫn trình duyệt cách xử lý nội dung của trang, ngăn chặn nhiều hành vi nguy hiểm như:

  • Chèn script độc hại (XSS)
  • Nhúng website vào iframe (Clickjacking)
  • Tải script từ nguồn không tin cậy
  • Chặn downgrade attack HTTPS → HTTP
  • Chặn MIME sniffing

Không cần sửa code plugin/theme – chỉ cần cấu hình server đúng cách.

Danh sách Security Headers quan trọng nhất

1. X-Frame-Options (chống Clickjacking)

X-Frame-Options: SAMEORIGIN
  • SAMEORIGIN: chỉ cho phép iframe từ chính website
  • DENY: cấm mọi iframe

WordPress admin rất dễ bị clickjacking → bật bắt buộc.

Apache:

Header always append X-Frame-Options SAMEORIGIN

Nginx:

add_header X-Frame-Options "SAMEORIGIN";

2. X-Content-Type-Options (chống MIME sniffing)

X-Content-Type-Options: nosniff

Ngăn trình duyệt cố đoán MIME → chặn nhiều tấn công upload file.

3. Strict-Transport-Security (HSTS – ép HTTPS)

Buộc trình duyệt luôn dùng HTTPS → chặn MITM (man-in-the-middle).

Strict-Transport-Security: max-age=31536000; includeSubDomains; preload

Lưu ý: Chỉ bật khi site 100% dùng HTTPS.

4. Referrer-Policy (giới hạn gửi referrer)

Referrer-Policy: strict-origin-when-cross-origin

Bảo vệ URL nhạy cảm không bị leak sang domain khác.

5. Permissions-Policy (chặn quyền nguy hiểm của trình duyệt)

Trước đây là Feature-Policy.

Permissions-Policy: geolocation=(), camera=(), microphone=()

Hạn chế website giả mạo lạm dụng camera/microphone.

6. Cross-Origin-Opener-Policy (COOP)

Cross-Origin-Opener-Policy: same-origin

Giảm nguy cơ tấn công cross-window, tab-napping.

7. Cross-Origin-Embedder-Policy (COEP)

Cross-Origin-Embedder-Policy: require-corp

Ngăn nhúng tài nguyên cross-site không rõ nguồn gốc.

8. Cross-Origin-Resource-Policy (CORP)

Cross-Origin-Resource-Policy: same-origin

Ngăn domain khác tải tài nguyên tĩnh của bạn.

9. Content-Security-Policy (CSP – mạnh nhất)

CSP là “quái vật” trong security headers – chặn 90% XSS và clickjacking.

Ví dụ CSP đơn giản:

Content-Security-Policy: default-src 'self'; img-src 'self' https:; script-src 'self'; style-src 'self' 'unsafe-inline'

Mạnh hơn:

Content-Security-Policy: frame-ancestors 'self';

→ Thay thế X-Frame-Options.

Tích hợp Security Headers vào WordPress

1. Thêm vào .htaccess (Apache)

<IfModule mod_headers.c>
Header always set X-Frame-Options "SAMEORIGIN"
Header always set X-Content-Type-Options "nosniff"
Header always set Referrer-Policy "strict-origin-when-cross-origin"
Header always set Permissions-Policy "geolocation=(), camera=(), microphone=()"
Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains"
</IfModule>

2. Thêm vào cấu hình Nginx

add_header X-Frame-Options "SAMEORIGIN";
add_header X-Content-Type-Options "nosniff";
add_header Referrer-Policy "strict-origin-when-cross-origin";
add_header Permissions-Policy "geolocation=(), camera=(), microphone=()";
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains";

3. Thêm qua theme (cách này yếu hơn)

Dùng hook send_headers:

function add_security_headers() {
    header( 'X-Frame-Options: SAMEORIGIN' );
    header( 'X-Content-Type-Options: nosniff' );
    header( 'Referrer-Policy: strict-origin-when-cross-origin' );
}
add_action( 'send_headers', 'add_security_headers' );

→ Không mạnh bằng cấu hình server, nhưng tốt khi không sửa server được.

Các lỗi cấu hình security headers thường gặp

  • Dùng CSP quá mạnh làm hỏng CSS/JS
  • Thiếu HTTPS nhưng bật HSTS
  • Chỉ bật một vài header, không bật đủ
  • Không test trên nhiều browser
  • Dùng allowlist domain quá rộng trong CSP

Bộ Security Headers “chuẩn” cho WordPress

Đây là combo mạnh – tối ưu – an toàn nhất:

X-Content-Type-Options: nosniff
X-Frame-Options: SAMEORIGIN
Referrer-Policy: strict-origin-when-cross-origin
Permissions-Policy: geolocation=(), camera=(), microphone=()
Strict-Transport-Security: max-age=31536000; includeSubDomains; preload
Content-Security-Policy: frame-ancestors 'self'
Cross-Origin-Opener-Policy: same-origin
Cross-Origin-Resource-Policy: same-origin
Cross-Origin-Embedder-Policy: require-corp

Checklist Security Headers

  • Bật X-Frame-Options hoặc CSP frame-ancestors
  • Bật X-Content-Type-Options để chống MIME sniffing
  • Bật HSTS nếu site dùng HTTPS
  • Bật Permissions-Policy để chặn quyền nguy hiểm
  • Giới hạn referrer bằng Referrer-Policy
  • Cấu hình CSP nếu muốn chống XSS mạnh
  • Test kỹ khi bật CSP để tránh lỗi giao diện

Kết luận

Security Headers là một lớp bảo mật cực kỳ hiệu quả và dễ triển khai cho WordPress. Chỉ cần bật 5–7 header quan trọng, bạn có thể chặn phần lớn các tấn công phổ biến như XSS, clickjacking, phishing, data leak, và downgrade attack. Đây là bước hardening bắt buộc đối với bất kỳ website WordPress nào muốn tăng cường bảo mật chuyên nghiệp.

Bình luận


  • Không có bình luận.

Init Toolbox

Nhấn Ctrl + \ trên máy tính, hoặc vuốt sang trái ở bất kỳ đâu trên mobile.

Đăng nhập





Đang tải...